diff --git a/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/Assets/AddressableAssetsData/AddressableAssetSettings.asset deleted file mode 100644 index 2bf9e53..0000000 --- a/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ /dev/null @@ -1,109 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 468a46d0ae32c3544b7d98094e6448a9, type: 3} - m_Name: AddressableAssetSettings - m_EditorClassIdentifier: - m_DefaultGroup: 30831bdd21d601541b9f1dbda60ff130 - m_currentHash: - serializedVersion: 2 - Hash: 00000000000000000000000000000000 - m_OptimizeCatalogSize: 0 - m_BuildRemoteCatalog: 0 - m_BundleLocalCatalog: 0 - m_CatalogRequestsTimeout: 0 - m_DisableCatalogUpdateOnStart: 0 - m_IgnoreUnsupportedFilesInBuild: 0 - m_UniqueBundleIds: 0 - m_NonRecursiveBuilding: 1 - m_CCDEnabled: 0 - m_maxConcurrentWebRequests: 3 - m_ContiguousBundles: 1 - m_StripUnityVersionFromBundleBuild: 0 - m_DisableVisibleSubAssetRepresentations: 0 - m_ShaderBundleNaming: 0 - m_ShaderBundleCustomNaming: - m_MonoScriptBundleNaming: 0 - m_CheckForContentUpdateRestrictionsOption: 0 - m_MonoScriptBundleCustomNaming: - m_RemoteCatalogBuildPath: - m_Id: - m_RemoteCatalogLoadPath: - m_Id: - m_ContentStateBuildPathProfileVariableName: - m_CustomContentStateBuildPath: - m_ContentStateBuildPath: - m_BuildAddressablesWithPlayerBuild: 0 - m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]' - m_GroupAssets: - - {fileID: 11400000, guid: 7e359b460b93dfb43b03f006407d3059, type: 2} - - {fileID: 11400000, guid: a59124c055c49e64f8be1fa523cef776, type: 2} - m_BuildSettings: - m_CompileScriptsInVirtualMode: 0 - m_CleanupStreamingAssetsAfterBuilds: 1 - m_LogResourceManagerExceptions: 1 - m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles - m_ProfileSettings: - m_Profiles: - - m_InheritedParent: - m_Id: 0c91aeb1b513acd4d8c264fea1ab98b7 - m_ProfileName: Default - m_Values: - - m_Id: b4bb736ebd8f51a4981643e72b977271 - m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]' - - m_Id: 49ad5f32ac0849d4b8840597976a5806 - m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]' - - m_Id: 8eca2d87208095c4a8555a1da1d1dd23 - m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]' - - m_Id: e91be512e78139f41ad57b27793da476 - m_Value: 'ServerData/[BuildTarget]' - - m_Id: e466ef65264c88b4b8d367188b68fd69 - m_Value: 'http://[PrivateIpAddress]:[HostingServicePort]' - m_ProfileEntryNames: - - m_Id: b4bb736ebd8f51a4981643e72b977271 - m_Name: BuildTarget - m_InlineUsage: 0 - - m_Id: 49ad5f32ac0849d4b8840597976a5806 - m_Name: Local.BuildPath - m_InlineUsage: 0 - - m_Id: 8eca2d87208095c4a8555a1da1d1dd23 - m_Name: Local.LoadPath - m_InlineUsage: 0 - - m_Id: e91be512e78139f41ad57b27793da476 - m_Name: Remote.BuildPath - m_InlineUsage: 0 - - m_Id: e466ef65264c88b4b8d367188b68fd69 - m_Name: Remote.LoadPath - m_InlineUsage: 0 - m_ProfileVersion: 1 - m_LabelTable: - m_LabelNames: - - default - m_SchemaTemplates: [] - m_GroupTemplateObjects: - - {fileID: 11400000, guid: a1b77770eb95dae4f9ff6761e1be451a, type: 2} - m_InitializationObjects: [] - m_CertificateHandlerType: - m_AssemblyName: - m_ClassName: - m_ActivePlayerDataBuilderIndex: 3 - m_DataBuilders: - - {fileID: 11400000, guid: 14d2ef5c503011d4389f6064bd0fcdaa, type: 2} - - {fileID: 11400000, guid: fc902425dc801364a98b5879a60305a6, type: 2} - - {fileID: 11400000, guid: eca6ffd6fabbdb94f804bb77b6ecf461, type: 2} - - {fileID: 11400000, guid: 1b73dab4574cc3a44a6ec57794dab027, type: 2} - m_ActiveProfileId: 0c91aeb1b513acd4d8c264fea1ab98b7 - m_HostingServicesManager: - m_HostingServiceInfos: [] - m_Settings: {fileID: 11400000} - m_NextInstanceId: 0 - m_RegisteredServiceTypeRefs: [] - m_PingTimeoutInMilliseconds: 5000 diff --git a/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset b/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset deleted file mode 100644 index 636c1b5..0000000 --- a/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset +++ /dev/null @@ -1,76 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3} - m_Name: Packed Assets - m_EditorClassIdentifier: - m_SchemaObjects: - - {fileID: 8541835493442959040} - - {fileID: 5198340621275949905} - m_Description: Pack assets into asset bundles. - m_Settings: {fileID: 11400000, guid: 6e9c9bfd5055dab4ebb8144c2886b86c, type: 2} ---- !u!114 &5198340621275949905 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3} - m_Name: ContentUpdateGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 0} - m_StaticContent: 0 ---- !u!114 &8541835493442959040 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3} - m_Name: BundledAssetGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 0} - m_InternalBundleIdMode: 1 - m_Compression: 1 - m_IncludeAddressInCatalog: 1 - m_IncludeGUIDInCatalog: 1 - m_IncludeLabelsInCatalog: 1 - m_InternalIdNamingMode: 0 - m_CacheClearBehavior: 0 - m_IncludeInBuild: 1 - m_BundledAssetProviderType: - m_AssemblyName: - m_ClassName: - m_ForceUniqueProvider: 0 - m_UseAssetBundleCache: 1 - m_UseAssetBundleCrc: 1 - m_UseAssetBundleCrcForCachedBundles: 1 - m_UseUWRForLocalBundles: 0 - m_Timeout: 0 - m_ChunkedTransfer: 0 - m_RedirectLimit: -1 - m_RetryCount: 0 - m_BuildPath: - m_Id: - m_LoadPath: - m_Id: - m_BundleMode: 0 - m_AssetBundleProviderType: - m_AssemblyName: - m_ClassName: - m_BundleNaming: 0 - m_AssetLoadMode: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Built In Data.asset b/Assets/AddressableAssetsData/AssetGroups/Built In Data.asset deleted file mode 100644 index 6da92a0..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Built In Data.asset +++ /dev/null @@ -1,34 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3} - m_Name: Built In Data - m_EditorClassIdentifier: - m_GroupName: Built In Data - m_Data: - m_SerializedData: [] - m_GUID: 9ba11ddf90322294787b539f779cdecb - m_SerializeEntries: - - m_GUID: Resources - m_Address: Resources - m_ReadOnly: 1 - m_SerializedLabels: [] - FlaggedDuringContentUpdateRestriction: 0 - - m_GUID: EditorSceneList - m_Address: EditorSceneList - m_ReadOnly: 1 - m_SerializedLabels: [] - FlaggedDuringContentUpdateRestriction: 0 - m_ReadOnly: 1 - m_Settings: {fileID: 11400000, guid: 6e9c9bfd5055dab4ebb8144c2886b86c, type: 2} - m_SchemaSet: - m_Schemas: - - {fileID: 11400000, guid: a42ed6c5a613a3f419ba63d7856ec085, type: 2} diff --git a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset deleted file mode 100644 index ebad54e..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ /dev/null @@ -1,30 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3} - m_Name: Default Local Group - m_EditorClassIdentifier: - m_GroupName: Default Local Group - m_Data: - m_SerializedData: [] - m_GUID: 30831bdd21d601541b9f1dbda60ff130 - m_SerializeEntries: - - m_GUID: a8cbf0b6b50eebb4b9b91456ef98c8d1 - m_Address: Assets/Scenes/Back.mat - m_ReadOnly: 0 - m_SerializedLabels: [] - FlaggedDuringContentUpdateRestriction: 0 - m_ReadOnly: 0 - m_Settings: {fileID: 11400000, guid: 6e9c9bfd5055dab4ebb8144c2886b86c, type: 2} - m_SchemaSet: - m_Schemas: - - {fileID: 11400000, guid: 05354c3f70bcd894f891a08a887b4633, type: 2} - - {fileID: 11400000, guid: cc5a9e1050a388048bba033eae0d7945, type: 2} diff --git a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta deleted file mode 100644 index 0596228..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a59124c055c49e64f8be1fa523cef776 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset b/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset deleted file mode 100644 index 22c39ff..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset +++ /dev/null @@ -1,17 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b1487f5d688e4f94f828f879d599dbdc, type: 3} - m_Name: Built In Data_PlayerDataGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 11400000, guid: 7e359b460b93dfb43b03f006407d3059, type: 2} - m_IncludeResourcesFolders: 1 - m_IncludeBuildSettingsScenes: 1 diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset.meta deleted file mode 100644 index 6b3b6a2..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a42ed6c5a613a3f419ba63d7856ec085 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset b/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset deleted file mode 100644 index ee0234a..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset +++ /dev/null @@ -1,45 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3} - m_Name: Default Local Group_BundledAssetGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 11400000, guid: a59124c055c49e64f8be1fa523cef776, type: 2} - m_InternalBundleIdMode: 1 - m_Compression: 1 - m_IncludeAddressInCatalog: 1 - m_IncludeGUIDInCatalog: 1 - m_IncludeLabelsInCatalog: 1 - m_InternalIdNamingMode: 0 - m_CacheClearBehavior: 0 - m_IncludeInBuild: 1 - m_BundledAssetProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider - m_ForceUniqueProvider: 0 - m_UseAssetBundleCache: 1 - m_UseAssetBundleCrc: 1 - m_UseAssetBundleCrcForCachedBundles: 1 - m_UseUWRForLocalBundles: 0 - m_Timeout: 0 - m_ChunkedTransfer: 0 - m_RedirectLimit: -1 - m_RetryCount: 0 - m_BuildPath: - m_Id: 49ad5f32ac0849d4b8840597976a5806 - m_LoadPath: - m_Id: 8eca2d87208095c4a8555a1da1d1dd23 - m_BundleMode: 0 - m_AssetBundleProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider - m_BundleNaming: 0 - m_AssetLoadMode: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta deleted file mode 100644 index 6a4bbdb..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cc5a9e1050a388048bba033eae0d7945 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset b/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset deleted file mode 100644 index 2adb88f..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3} - m_Name: Default Local Group_ContentUpdateGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 11400000, guid: a59124c055c49e64f8be1fa523cef776, type: 2} - m_StaticContent: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta deleted file mode 100644 index 9e011e6..0000000 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 05354c3f70bcd894f891a08a887b4633 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DataBuilders.meta b/Assets/AddressableAssetsData/DataBuilders.meta deleted file mode 100644 index 2e999cf..0000000 --- a/Assets/AddressableAssetsData/DataBuilders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b9c3e8df4970bc1409702d90e021969f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset b/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset deleted file mode 100644 index 50d30dc..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 88d21199f5d473f4db36845f2318f180, type: 3} - m_Name: BuildScriptFastMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta b/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta deleted file mode 100644 index ade75fc..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 14d2ef5c503011d4389f6064bd0fcdaa -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset b/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset deleted file mode 100644 index ec875f9..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3e2e0ffa088c91d41a086d0b8cb16bdc, type: 3} - m_Name: BuildScriptPackedMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta b/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta deleted file mode 100644 index 20a4e06..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1b73dab4574cc3a44a6ec57794dab027 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset b/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset deleted file mode 100644 index 7628845..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad8c280d42ee0ed41a27db23b43dd2bf, type: 3} - m_Name: BuildScriptPackedPlayMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta b/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta deleted file mode 100644 index 42c766e..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eca6ffd6fabbdb94f804bb77b6ecf461 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset b/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset deleted file mode 100644 index dfb2d58..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bb0e4994b34add1409fd8ccaf4a82de5, type: 3} - m_Name: BuildScriptVirtualMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset.meta b/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset.meta deleted file mode 100644 index b9e73ba..0000000 --- a/Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fc902425dc801364a98b5879a60305a6 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/DefaultObject.asset b/Assets/AddressableAssetsData/DefaultObject.asset deleted file mode 100644 index 73e48d3..0000000 --- a/Assets/AddressableAssetsData/DefaultObject.asset +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3a189bb168d8d90478a09ea08c2f3d72, type: 3} - m_Name: DefaultObject - m_EditorClassIdentifier: - m_AddressableAssetSettingsGuid: 6e9c9bfd5055dab4ebb8144c2886b86c diff --git a/Assets/AddressableAssetsData/DefaultObject.asset.meta b/Assets/AddressableAssetsData/DefaultObject.asset.meta deleted file mode 100644 index 042a39f..0000000 --- a/Assets/AddressableAssetsData/DefaultObject.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: db66788cf682b8740a0b2b0804b104c7 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset deleted file mode 100644 index b98d845..0000000 --- a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset +++ /dev/null @@ -1,34 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7e3976da977cb49238499ea3b4c237ae, type: 3} - m_Name: ProfileDataSourceSettings - m_EditorClassIdentifier: - profileGroupTypes: - - m_GroupTypePrefix: Built-In - m_Variables: - - m_Suffix: BuildPath - m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]' - - m_Suffix: LoadPath - m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]' - - m_GroupTypePrefix: Editor Hosted - m_Variables: - - m_Suffix: BuildPath - m_Value: 'ServerData/[BuildTarget]' - - m_Suffix: LoadPath - m_Value: 'http://[PrivateIpAddress]:[HostingServicePort]' - environments: [] - currentEnvironment: - id: - projectId: - projectGenesisId: - name: - isDefault: 0 diff --git a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta deleted file mode 100644 index 55d94b5..0000000 --- a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0366f473417f15b41b79b587ba6d7f54 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/WebGL.meta b/Assets/AddressableAssetsData/WebGL.meta deleted file mode 100644 index d5589a3..0000000 --- a/Assets/AddressableAssetsData/WebGL.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4a83b4008dc57b145a22fdd97efcc65e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AddressableAssetsData/WebGL/addressables_content_state.bin b/Assets/AddressableAssetsData/WebGL/addressables_content_state.bin deleted file mode 100644 index fba95d8..0000000 Binary files a/Assets/AddressableAssetsData/WebGL/addressables_content_state.bin and /dev/null differ diff --git a/Assets/AddressableAssetsData.meta b/Assets/AssetArt.meta similarity index 77% rename from Assets/AddressableAssetsData.meta rename to Assets/AssetArt.meta index 2ab5656..8705eaf 100644 --- a/Assets/AddressableAssetsData.meta +++ b/Assets/AssetArt.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: be7368d3f396bd54a9d217751ccc6086 +guid: 580bb07380a660e4986394f53c42b700 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Fantasy Skybox FREE.meta b/Assets/AssetArt/Fantasy Skybox FREE.meta similarity index 100% rename from Assets/Fantasy Skybox FREE.meta rename to Assets/AssetArt/Fantasy Skybox FREE.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_01_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_02_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_03_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_04_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_05_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Day_06_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_01_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_02_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03.png.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Cubemaps/Classic/FS000_Night_03_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Day_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Rainy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Snowy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunrise.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS002/FS002_Sunset.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Day_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Night_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Rainy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Snowy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunrise.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS003/FS003_Sunset.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Day_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Night_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Rainy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Snowy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunrise.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS013/FS013_Sunset.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Day_Sunless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Night_Moonless.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Rainy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Snowy.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunrise.png.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.mat.meta diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Panoramics/FS017/FS017_Sunset.png.meta diff --git a/Assets/Fantasy Skybox FREE/Readme.txt b/Assets/AssetArt/Fantasy Skybox FREE/Readme.txt similarity index 100% rename from Assets/Fantasy Skybox FREE/Readme.txt rename to Assets/AssetArt/Fantasy Skybox FREE/Readme.txt diff --git a/Assets/Fantasy Skybox FREE/Readme.txt.meta b/Assets/AssetArt/Fantasy Skybox FREE/Readme.txt.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Readme.txt.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Readme.txt.meta diff --git a/Assets/Fantasy Skybox FREE/ReleaseNotes.txt b/Assets/AssetArt/Fantasy Skybox FREE/ReleaseNotes.txt similarity index 100% rename from Assets/Fantasy Skybox FREE/ReleaseNotes.txt rename to Assets/AssetArt/Fantasy Skybox FREE/ReleaseNotes.txt diff --git a/Assets/Fantasy Skybox FREE/ReleaseNotes.txt.meta b/Assets/AssetArt/Fantasy Skybox FREE/ReleaseNotes.txt.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/ReleaseNotes.txt.meta rename to Assets/AssetArt/Fantasy Skybox FREE/ReleaseNotes.txt.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Demo with terrain.unity b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo with terrain.unity similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Demo with terrain.unity rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo with terrain.unity diff --git a/Assets/Fantasy Skybox FREE/Scenes/Demo with terrain.unity.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo with terrain.unity.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Demo with terrain.unity.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo with terrain.unity.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Demo without terrain.unity b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo without terrain.unity similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Demo without terrain.unity rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo without terrain.unity diff --git a/Assets/Fantasy Skybox FREE/Scenes/Demo without terrain.unity.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo without terrain.unity.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Demo without terrain.unity.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Demo without terrain.unity.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps).meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps).meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps).meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps).meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/LightingData.asset.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_dir.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/Lightmap-0_comp_light.exr.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Lightmaps)/ReflectionProbe-0.exr.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain).meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain).meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain).meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain).meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Flower.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_01.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Brush_Grass_02.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/SampleTerrain.asset.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainDirt.terrainlayer.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainGrass.terrainlayer.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/TerrainRock.terrainlayer.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Diffuse.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Dirt_Normal.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Diffuse.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Grass_Normal.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texture_Rock_Diffuse.png.meta diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png diff --git a/Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png.meta b/Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png.meta similarity index 100% rename from Assets/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png.meta rename to Assets/AssetArt/Fantasy Skybox FREE/Scenes/Textures (Terrain)/Texure_Rock_Normal.png.meta diff --git a/Assets/MeshCombiner.meta b/Assets/AssetArt/MeshCombiner.meta similarity index 100% rename from Assets/MeshCombiner.meta rename to Assets/AssetArt/MeshCombiner.meta diff --git a/Assets/MeshCombiner/Editor.meta b/Assets/AssetArt/MeshCombiner/Editor.meta similarity index 100% rename from Assets/MeshCombiner/Editor.meta rename to Assets/AssetArt/MeshCombiner/Editor.meta diff --git a/Assets/MeshCombiner/Editor/MeshCombinerEditor.cs b/Assets/AssetArt/MeshCombiner/Editor/MeshCombinerEditor.cs similarity index 100% rename from Assets/MeshCombiner/Editor/MeshCombinerEditor.cs rename to Assets/AssetArt/MeshCombiner/Editor/MeshCombinerEditor.cs diff --git a/Assets/MeshCombiner/Editor/MeshCombinerEditor.cs.meta b/Assets/AssetArt/MeshCombiner/Editor/MeshCombinerEditor.cs.meta similarity index 100% rename from Assets/MeshCombiner/Editor/MeshCombinerEditor.cs.meta rename to Assets/AssetArt/MeshCombiner/Editor/MeshCombinerEditor.cs.meta diff --git a/Assets/MeshCombiner/Scripts.meta b/Assets/AssetArt/MeshCombiner/Scripts.meta similarity index 100% rename from Assets/MeshCombiner/Scripts.meta rename to Assets/AssetArt/MeshCombiner/Scripts.meta diff --git a/Assets/MeshCombiner/Scripts/MeshCombiner.cs b/Assets/AssetArt/MeshCombiner/Scripts/MeshCombiner.cs similarity index 100% rename from Assets/MeshCombiner/Scripts/MeshCombiner.cs rename to Assets/AssetArt/MeshCombiner/Scripts/MeshCombiner.cs diff --git a/Assets/MeshCombiner/Scripts/MeshCombiner.cs.meta b/Assets/AssetArt/MeshCombiner/Scripts/MeshCombiner.cs.meta similarity index 100% rename from Assets/MeshCombiner/Scripts/MeshCombiner.cs.meta rename to Assets/AssetArt/MeshCombiner/Scripts/MeshCombiner.cs.meta diff --git a/Assets/MeshCombiner/readme.pdf b/Assets/AssetArt/MeshCombiner/readme.pdf similarity index 100% rename from Assets/MeshCombiner/readme.pdf rename to Assets/AssetArt/MeshCombiner/readme.pdf diff --git a/Assets/MeshCombiner/readme.pdf.meta b/Assets/AssetArt/MeshCombiner/readme.pdf.meta similarity index 100% rename from Assets/MeshCombiner/readme.pdf.meta rename to Assets/AssetArt/MeshCombiner/readme.pdf.meta diff --git a/Assets/AddressableAssetsData/AssetGroups.meta b/Assets/AssetRaw.meta similarity index 77% rename from Assets/AddressableAssetsData/AssetGroups.meta rename to Assets/AssetRaw.meta index 98b5c48..aacc9bb 100644 --- a/Assets/AddressableAssetsData/AssetGroups.meta +++ b/Assets/AssetRaw.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 421ca0e4737404145a337a9459357fcc +guid: 67bd7caf7a8828b40bc5e836d30f1b4d folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Prefabs.meta b/Assets/AssetRaw/Prefabs.meta similarity index 100% rename from Assets/Prefabs.meta rename to Assets/AssetRaw/Prefabs.meta diff --git a/Assets/Prefabs/CombinedMeshes.meta b/Assets/AssetRaw/Prefabs/CombinedMeshes.meta similarity index 100% rename from Assets/Prefabs/CombinedMeshes.meta rename to Assets/AssetRaw/Prefabs/CombinedMeshes.meta diff --git a/Assets/Prefabs/CombinedMeshes/Cargo.controller b/Assets/AssetRaw/Prefabs/CombinedMeshes/Cargo.controller similarity index 100% rename from Assets/Prefabs/CombinedMeshes/Cargo.controller rename to Assets/AssetRaw/Prefabs/CombinedMeshes/Cargo.controller diff --git a/Assets/Prefabs/CombinedMeshes/Cargo.controller.meta b/Assets/AssetRaw/Prefabs/CombinedMeshes/Cargo.controller.meta similarity index 100% rename from Assets/Prefabs/CombinedMeshes/Cargo.controller.meta rename to Assets/AssetRaw/Prefabs/CombinedMeshes/Cargo.controller.meta diff --git a/Assets/Prefabs/CombinedMeshes/stackerTimeline.playable b/Assets/AssetRaw/Prefabs/CombinedMeshes/stackerTimeline.playable similarity index 100% rename from Assets/Prefabs/CombinedMeshes/stackerTimeline.playable rename to Assets/AssetRaw/Prefabs/CombinedMeshes/stackerTimeline.playable diff --git a/Assets/Prefabs/CombinedMeshes/stackerTimeline.playable.meta b/Assets/AssetRaw/Prefabs/CombinedMeshes/stackerTimeline.playable.meta similarity index 100% rename from Assets/Prefabs/CombinedMeshes/stackerTimeline.playable.meta rename to Assets/AssetRaw/Prefabs/CombinedMeshes/stackerTimeline.playable.meta diff --git a/Assets/Prefabs/CombinedMeshes/原材料立库 Variant.controller b/Assets/AssetRaw/Prefabs/CombinedMeshes/原材料立库 Variant.controller similarity index 100% rename from Assets/Prefabs/CombinedMeshes/原材料立库 Variant.controller rename to Assets/AssetRaw/Prefabs/CombinedMeshes/原材料立库 Variant.controller diff --git a/Assets/Prefabs/CombinedMeshes/原材料立库 Variant.controller.meta b/Assets/AssetRaw/Prefabs/CombinedMeshes/原材料立库 Variant.controller.meta similarity index 100% rename from Assets/Prefabs/CombinedMeshes/原材料立库 Variant.controller.meta rename to Assets/AssetRaw/Prefabs/CombinedMeshes/原材料立库 Variant.controller.meta diff --git a/Assets/Prefabs/CombinedMeshes/输送线轨道.asset b/Assets/AssetRaw/Prefabs/CombinedMeshes/输送线轨道.asset similarity index 100% rename from Assets/Prefabs/CombinedMeshes/输送线轨道.asset rename to Assets/AssetRaw/Prefabs/CombinedMeshes/输送线轨道.asset diff --git a/Assets/Prefabs/CombinedMeshes/输送线轨道.asset.meta b/Assets/AssetRaw/Prefabs/CombinedMeshes/输送线轨道.asset.meta similarity index 100% rename from Assets/Prefabs/CombinedMeshes/输送线轨道.asset.meta rename to Assets/AssetRaw/Prefabs/CombinedMeshes/输送线轨道.asset.meta diff --git a/Assets/model.meta b/Assets/AssetRaw/model.meta similarity index 100% rename from Assets/model.meta rename to Assets/AssetRaw/model.meta diff --git a/Assets/model/model.meta b/Assets/AssetRaw/model/model.meta similarity index 100% rename from Assets/model/model.meta rename to Assets/AssetRaw/model/model.meta diff --git a/Assets/model/model/materials.meta b/Assets/AssetRaw/model/model/materials.meta similarity index 100% rename from Assets/model/model/materials.meta rename to Assets/AssetRaw/model/model/materials.meta diff --git a/Assets/model/model/materials/AGV轨道2.mat b/Assets/AssetRaw/model/model/materials/AGV轨道2.mat similarity index 100% rename from Assets/model/model/materials/AGV轨道2.mat rename to Assets/AssetRaw/model/model/materials/AGV轨道2.mat diff --git a/Assets/model/model/materials/AGV轨道2.mat.meta b/Assets/AssetRaw/model/model/materials/AGV轨道2.mat.meta similarity index 100% rename from Assets/model/model/materials/AGV轨道2.mat.meta rename to Assets/AssetRaw/model/model/materials/AGV轨道2.mat.meta diff --git a/Assets/model/model/materials/Pallet.mat b/Assets/AssetRaw/model/model/materials/Pallet.mat similarity index 100% rename from Assets/model/model/materials/Pallet.mat rename to Assets/AssetRaw/model/model/materials/Pallet.mat diff --git a/Assets/model/model/materials/Pallet.mat.meta b/Assets/AssetRaw/model/model/materials/Pallet.mat.meta similarity index 100% rename from Assets/model/model/materials/Pallet.mat.meta rename to Assets/AssetRaw/model/model/materials/Pallet.mat.meta diff --git a/Assets/model/model/materials/YIFI-buxiugang.mat b/Assets/AssetRaw/model/model/materials/YIFI-buxiugang.mat similarity index 100% rename from Assets/model/model/materials/YIFI-buxiugang.mat rename to Assets/AssetRaw/model/model/materials/YIFI-buxiugang.mat diff --git a/Assets/model/model/materials/YIFI-buxiugang.mat.meta b/Assets/AssetRaw/model/model/materials/YIFI-buxiugang.mat.meta similarity index 100% rename from Assets/model/model/materials/YIFI-buxiugang.mat.meta rename to Assets/AssetRaw/model/model/materials/YIFI-buxiugang.mat.meta diff --git a/Assets/model/model/materials/agv轨道1.mat b/Assets/AssetRaw/model/model/materials/agv轨道1.mat similarity index 100% rename from Assets/model/model/materials/agv轨道1.mat rename to Assets/AssetRaw/model/model/materials/agv轨道1.mat diff --git a/Assets/model/model/materials/agv轨道1.mat.meta b/Assets/AssetRaw/model/model/materials/agv轨道1.mat.meta similarity index 100% rename from Assets/model/model/materials/agv轨道1.mat.meta rename to Assets/AssetRaw/model/model/materials/agv轨道1.mat.meta diff --git a/Assets/model/model/materials/black_metallic.mat b/Assets/AssetRaw/model/model/materials/black_metallic.mat similarity index 100% rename from Assets/model/model/materials/black_metallic.mat rename to Assets/AssetRaw/model/model/materials/black_metallic.mat diff --git a/Assets/model/model/materials/black_metallic.mat.meta b/Assets/AssetRaw/model/model/materials/black_metallic.mat.meta similarity index 100% rename from Assets/model/model/materials/black_metallic.mat.meta rename to Assets/AssetRaw/model/model/materials/black_metallic.mat.meta diff --git a/Assets/model/model/materials/black_tube.mat b/Assets/AssetRaw/model/model/materials/black_tube.mat similarity index 100% rename from Assets/model/model/materials/black_tube.mat rename to Assets/AssetRaw/model/model/materials/black_tube.mat diff --git a/Assets/model/model/materials/black_tube.mat.meta b/Assets/AssetRaw/model/model/materials/black_tube.mat.meta similarity index 100% rename from Assets/model/model/materials/black_tube.mat.meta rename to Assets/AssetRaw/model/model/materials/black_tube.mat.meta diff --git a/Assets/model/model/materials/dark_green_matte.001.mat b/Assets/AssetRaw/model/model/materials/dark_green_matte.001.mat similarity index 100% rename from Assets/model/model/materials/dark_green_matte.001.mat rename to Assets/AssetRaw/model/model/materials/dark_green_matte.001.mat diff --git a/Assets/model/model/materials/dark_green_matte.001.mat.meta b/Assets/AssetRaw/model/model/materials/dark_green_matte.001.mat.meta similarity index 100% rename from Assets/model/model/materials/dark_green_matte.001.mat.meta rename to Assets/AssetRaw/model/model/materials/dark_green_matte.001.mat.meta diff --git a/Assets/model/model/materials/dark_green_matte.mat b/Assets/AssetRaw/model/model/materials/dark_green_matte.mat similarity index 100% rename from Assets/model/model/materials/dark_green_matte.mat rename to Assets/AssetRaw/model/model/materials/dark_green_matte.mat diff --git a/Assets/model/model/materials/dark_green_matte.mat.meta b/Assets/AssetRaw/model/model/materials/dark_green_matte.mat.meta similarity index 100% rename from Assets/model/model/materials/dark_green_matte.mat.meta rename to Assets/AssetRaw/model/model/materials/dark_green_matte.mat.meta diff --git a/Assets/model/model/materials/defaultMat.mat b/Assets/AssetRaw/model/model/materials/defaultMat.mat similarity index 100% rename from Assets/model/model/materials/defaultMat.mat rename to Assets/AssetRaw/model/model/materials/defaultMat.mat diff --git a/Assets/model/model/materials/defaultMat.mat.meta b/Assets/AssetRaw/model/model/materials/defaultMat.mat.meta similarity index 100% rename from Assets/model/model/materials/defaultMat.mat.meta rename to Assets/AssetRaw/model/model/materials/defaultMat.mat.meta diff --git a/Assets/model/model/materials/green.mat b/Assets/AssetRaw/model/model/materials/green.mat similarity index 100% rename from Assets/model/model/materials/green.mat rename to Assets/AssetRaw/model/model/materials/green.mat diff --git a/Assets/model/model/materials/green.mat.meta b/Assets/AssetRaw/model/model/materials/green.mat.meta similarity index 100% rename from Assets/model/model/materials/green.mat.meta rename to Assets/AssetRaw/model/model/materials/green.mat.meta diff --git a/Assets/model/model/materials/grey.mat b/Assets/AssetRaw/model/model/materials/grey.mat similarity index 100% rename from Assets/model/model/materials/grey.mat rename to Assets/AssetRaw/model/model/materials/grey.mat diff --git a/Assets/model/model/materials/grey.mat.meta b/Assets/AssetRaw/model/model/materials/grey.mat.meta similarity index 100% rename from Assets/model/model/materials/grey.mat.meta rename to Assets/AssetRaw/model/model/materials/grey.mat.meta diff --git a/Assets/model/model/materials/medium_grey.mat b/Assets/AssetRaw/model/model/materials/medium_grey.mat similarity index 100% rename from Assets/model/model/materials/medium_grey.mat rename to Assets/AssetRaw/model/model/materials/medium_grey.mat diff --git a/Assets/model/model/materials/medium_grey.mat.meta b/Assets/AssetRaw/model/model/materials/medium_grey.mat.meta similarity index 100% rename from Assets/model/model/materials/medium_grey.mat.meta rename to Assets/AssetRaw/model/model/materials/medium_grey.mat.meta diff --git a/Assets/model/model/materials/orange_metallic.mat b/Assets/AssetRaw/model/model/materials/orange_metallic.mat similarity index 100% rename from Assets/model/model/materials/orange_metallic.mat rename to Assets/AssetRaw/model/model/materials/orange_metallic.mat diff --git a/Assets/model/model/materials/orange_metallic.mat.meta b/Assets/AssetRaw/model/model/materials/orange_metallic.mat.meta similarity index 100% rename from Assets/model/model/materials/orange_metallic.mat.meta rename to Assets/AssetRaw/model/model/materials/orange_metallic.mat.meta diff --git a/Assets/model/model/materials/red.mat b/Assets/AssetRaw/model/model/materials/red.mat similarity index 100% rename from Assets/model/model/materials/red.mat rename to Assets/AssetRaw/model/model/materials/red.mat diff --git a/Assets/model/model/materials/red.mat.meta b/Assets/AssetRaw/model/model/materials/red.mat.meta similarity index 100% rename from Assets/model/model/materials/red.mat.meta rename to Assets/AssetRaw/model/model/materials/red.mat.meta diff --git a/Assets/model/model/materials/yellow.mat b/Assets/AssetRaw/model/model/materials/yellow.mat similarity index 100% rename from Assets/model/model/materials/yellow.mat rename to Assets/AssetRaw/model/model/materials/yellow.mat diff --git a/Assets/model/model/materials/yellow.mat.meta b/Assets/AssetRaw/model/model/materials/yellow.mat.meta similarity index 100% rename from Assets/model/model/materials/yellow.mat.meta rename to Assets/AssetRaw/model/model/materials/yellow.mat.meta diff --git a/Assets/model/model/materials/一层地图.mat b/Assets/AssetRaw/model/model/materials/一层地图.mat similarity index 100% rename from Assets/model/model/materials/一层地图.mat rename to Assets/AssetRaw/model/model/materials/一层地图.mat diff --git a/Assets/model/model/materials/一层地图.mat.meta b/Assets/AssetRaw/model/model/materials/一层地图.mat.meta similarity index 100% rename from Assets/model/model/materials/一层地图.mat.meta rename to Assets/AssetRaw/model/model/materials/一层地图.mat.meta diff --git a/Assets/model/model/materials/三层地图.mat b/Assets/AssetRaw/model/model/materials/三层地图.mat similarity index 100% rename from Assets/model/model/materials/三层地图.mat rename to Assets/AssetRaw/model/model/materials/三层地图.mat diff --git a/Assets/model/model/materials/三层地图.mat.meta b/Assets/AssetRaw/model/model/materials/三层地图.mat.meta similarity index 100% rename from Assets/model/model/materials/三层地图.mat.meta rename to Assets/AssetRaw/model/model/materials/三层地图.mat.meta diff --git a/Assets/model/model/materials/二层地图.mat b/Assets/AssetRaw/model/model/materials/二层地图.mat similarity index 100% rename from Assets/model/model/materials/二层地图.mat rename to Assets/AssetRaw/model/model/materials/二层地图.mat diff --git a/Assets/model/model/materials/二层地图.mat.meta b/Assets/AssetRaw/model/model/materials/二层地图.mat.meta similarity index 100% rename from Assets/model/model/materials/二层地图.mat.meta rename to Assets/AssetRaw/model/model/materials/二层地图.mat.meta diff --git a/Assets/model/model/materials/人造塑料杆.mat b/Assets/AssetRaw/model/model/materials/人造塑料杆.mat similarity index 100% rename from Assets/model/model/materials/人造塑料杆.mat rename to Assets/AssetRaw/model/model/materials/人造塑料杆.mat diff --git a/Assets/model/model/materials/人造塑料杆.mat.meta b/Assets/AssetRaw/model/model/materials/人造塑料杆.mat.meta similarity index 100% rename from Assets/model/model/materials/人造塑料杆.mat.meta rename to Assets/AssetRaw/model/model/materials/人造塑料杆.mat.meta diff --git a/Assets/model/model/materials/哑光塑料.001.mat b/Assets/AssetRaw/model/model/materials/哑光塑料.001.mat similarity index 100% rename from Assets/model/model/materials/哑光塑料.001.mat rename to Assets/AssetRaw/model/model/materials/哑光塑料.001.mat diff --git a/Assets/model/model/materials/哑光塑料.001.mat.meta b/Assets/AssetRaw/model/model/materials/哑光塑料.001.mat.meta similarity index 100% rename from Assets/model/model/materials/哑光塑料.001.mat.meta rename to Assets/AssetRaw/model/model/materials/哑光塑料.001.mat.meta diff --git a/Assets/model/model/materials/哑光塑料.mat b/Assets/AssetRaw/model/model/materials/哑光塑料.mat similarity index 100% rename from Assets/model/model/materials/哑光塑料.mat rename to Assets/AssetRaw/model/model/materials/哑光塑料.mat diff --git a/Assets/model/model/materials/哑光塑料.mat.meta b/Assets/AssetRaw/model/model/materials/哑光塑料.mat.meta similarity index 100% rename from Assets/model/model/materials/哑光塑料.mat.meta rename to Assets/AssetRaw/model/model/materials/哑光塑料.mat.meta diff --git a/Assets/model/model/materials/堆垛机.mat b/Assets/AssetRaw/model/model/materials/堆垛机.mat similarity index 100% rename from Assets/model/model/materials/堆垛机.mat rename to Assets/AssetRaw/model/model/materials/堆垛机.mat diff --git a/Assets/model/model/materials/堆垛机.mat.meta b/Assets/AssetRaw/model/model/materials/堆垛机.mat.meta similarity index 100% rename from Assets/model/model/materials/堆垛机.mat.meta rename to Assets/AssetRaw/model/model/materials/堆垛机.mat.meta diff --git a/Assets/model/model/materials/安全黄线.mat b/Assets/AssetRaw/model/model/materials/安全黄线.mat similarity index 100% rename from Assets/model/model/materials/安全黄线.mat rename to Assets/AssetRaw/model/model/materials/安全黄线.mat diff --git a/Assets/model/model/materials/安全黄线.mat.meta b/Assets/AssetRaw/model/model/materials/安全黄线.mat.meta similarity index 100% rename from Assets/model/model/materials/安全黄线.mat.meta rename to Assets/AssetRaw/model/model/materials/安全黄线.mat.meta diff --git a/Assets/model/model/materials/屏幕.mat b/Assets/AssetRaw/model/model/materials/屏幕.mat similarity index 100% rename from Assets/model/model/materials/屏幕.mat rename to Assets/AssetRaw/model/model/materials/屏幕.mat diff --git a/Assets/model/model/materials/屏幕.mat.meta b/Assets/AssetRaw/model/model/materials/屏幕.mat.meta similarity index 100% rename from Assets/model/model/materials/屏幕.mat.meta rename to Assets/AssetRaw/model/model/materials/屏幕.mat.meta diff --git a/Assets/model/model/materials/拉丝不锈钢 1.mat b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 1.mat similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 1.mat rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 1.mat diff --git a/Assets/model/model/materials/拉丝不锈钢 1.mat.meta b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 1.mat.meta similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 1.mat.meta rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 1.mat.meta diff --git a/Assets/model/model/materials/拉丝不锈钢 2.mat b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 2.mat similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 2.mat rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 2.mat diff --git a/Assets/model/model/materials/拉丝不锈钢 2.mat.meta b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 2.mat.meta similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 2.mat.meta rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 2.mat.meta diff --git a/Assets/model/model/materials/拉丝不锈钢 3.mat b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 3.mat similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 3.mat rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 3.mat diff --git a/Assets/model/model/materials/拉丝不锈钢 3.mat.meta b/Assets/AssetRaw/model/model/materials/拉丝不锈钢 3.mat.meta similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢 3.mat.meta rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢 3.mat.meta diff --git a/Assets/model/model/materials/拉丝不锈钢.mat b/Assets/AssetRaw/model/model/materials/拉丝不锈钢.mat similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢.mat rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢.mat diff --git a/Assets/model/model/materials/拉丝不锈钢.mat.meta b/Assets/AssetRaw/model/model/materials/拉丝不锈钢.mat.meta similarity index 100% rename from Assets/model/model/materials/拉丝不锈钢.mat.meta rename to Assets/AssetRaw/model/model/materials/拉丝不锈钢.mat.meta diff --git a/Assets/model/model/materials/材质.009.mat b/Assets/AssetRaw/model/model/materials/材质.009.mat similarity index 100% rename from Assets/model/model/materials/材质.009.mat rename to Assets/AssetRaw/model/model/materials/材质.009.mat diff --git a/Assets/model/model/materials/材质.009.mat.meta b/Assets/AssetRaw/model/model/materials/材质.009.mat.meta similarity index 100% rename from Assets/model/model/materials/材质.009.mat.meta rename to Assets/AssetRaw/model/model/materials/材质.009.mat.meta diff --git a/Assets/model/model/materials/白色塑料.mat b/Assets/AssetRaw/model/model/materials/白色塑料.mat similarity index 100% rename from Assets/model/model/materials/白色塑料.mat rename to Assets/AssetRaw/model/model/materials/白色塑料.mat diff --git a/Assets/model/model/materials/白色塑料.mat.meta b/Assets/AssetRaw/model/model/materials/白色塑料.mat.meta similarity index 100% rename from Assets/model/model/materials/白色塑料.mat.meta rename to Assets/AssetRaw/model/model/materials/白色塑料.mat.meta diff --git a/Assets/model/model/materials/红玻璃.mat b/Assets/AssetRaw/model/model/materials/红玻璃.mat similarity index 100% rename from Assets/model/model/materials/红玻璃.mat rename to Assets/AssetRaw/model/model/materials/红玻璃.mat diff --git a/Assets/model/model/materials/红玻璃.mat.meta b/Assets/AssetRaw/model/model/materials/红玻璃.mat.meta similarity index 100% rename from Assets/model/model/materials/红玻璃.mat.meta rename to Assets/AssetRaw/model/model/materials/红玻璃.mat.meta diff --git a/Assets/model/model/materials/纸箱白.mat b/Assets/AssetRaw/model/model/materials/纸箱白.mat similarity index 100% rename from Assets/model/model/materials/纸箱白.mat rename to Assets/AssetRaw/model/model/materials/纸箱白.mat diff --git a/Assets/model/model/materials/纸箱白.mat.meta b/Assets/AssetRaw/model/model/materials/纸箱白.mat.meta similarity index 100% rename from Assets/model/model/materials/纸箱白.mat.meta rename to Assets/AssetRaw/model/model/materials/纸箱白.mat.meta diff --git a/Assets/model/model/materials/蓝色托盘 1.mat b/Assets/AssetRaw/model/model/materials/蓝色托盘 1.mat similarity index 100% rename from Assets/model/model/materials/蓝色托盘 1.mat rename to Assets/AssetRaw/model/model/materials/蓝色托盘 1.mat diff --git a/Assets/model/model/materials/蓝色托盘 1.mat.meta b/Assets/AssetRaw/model/model/materials/蓝色托盘 1.mat.meta similarity index 100% rename from Assets/model/model/materials/蓝色托盘 1.mat.meta rename to Assets/AssetRaw/model/model/materials/蓝色托盘 1.mat.meta diff --git a/Assets/model/model/materials/蓝色托盘.mat b/Assets/AssetRaw/model/model/materials/蓝色托盘.mat similarity index 100% rename from Assets/model/model/materials/蓝色托盘.mat rename to Assets/AssetRaw/model/model/materials/蓝色托盘.mat diff --git a/Assets/model/model/materials/蓝色托盘.mat.meta b/Assets/AssetRaw/model/model/materials/蓝色托盘.mat.meta similarity index 100% rename from Assets/model/model/materials/蓝色托盘.mat.meta rename to Assets/AssetRaw/model/model/materials/蓝色托盘.mat.meta diff --git a/Assets/model/model/materials/蓝边发光.mat b/Assets/AssetRaw/model/model/materials/蓝边发光.mat similarity index 100% rename from Assets/model/model/materials/蓝边发光.mat rename to Assets/AssetRaw/model/model/materials/蓝边发光.mat diff --git a/Assets/model/model/materials/蓝边发光.mat.meta b/Assets/AssetRaw/model/model/materials/蓝边发光.mat.meta similarity index 100% rename from Assets/model/model/materials/蓝边发光.mat.meta rename to Assets/AssetRaw/model/model/materials/蓝边发光.mat.meta diff --git a/Assets/model/model/materials/轨道.mat b/Assets/AssetRaw/model/model/materials/轨道.mat similarity index 100% rename from Assets/model/model/materials/轨道.mat rename to Assets/AssetRaw/model/model/materials/轨道.mat diff --git a/Assets/model/model/materials/轨道.mat.meta b/Assets/AssetRaw/model/model/materials/轨道.mat.meta similarity index 100% rename from Assets/model/model/materials/轨道.mat.meta rename to Assets/AssetRaw/model/model/materials/轨道.mat.meta diff --git a/Assets/model/model/materials/钢 1.mat b/Assets/AssetRaw/model/model/materials/钢 1.mat similarity index 100% rename from Assets/model/model/materials/钢 1.mat rename to Assets/AssetRaw/model/model/materials/钢 1.mat diff --git a/Assets/model/model/materials/钢 1.mat.meta b/Assets/AssetRaw/model/model/materials/钢 1.mat.meta similarity index 100% rename from Assets/model/model/materials/钢 1.mat.meta rename to Assets/AssetRaw/model/model/materials/钢 1.mat.meta diff --git a/Assets/model/model/materials/钢.mat b/Assets/AssetRaw/model/model/materials/钢.mat similarity index 100% rename from Assets/model/model/materials/钢.mat rename to Assets/AssetRaw/model/model/materials/钢.mat diff --git a/Assets/model/model/materials/钢.mat.meta b/Assets/AssetRaw/model/model/materials/钢.mat.meta similarity index 100% rename from Assets/model/model/materials/钢.mat.meta rename to Assets/AssetRaw/model/model/materials/钢.mat.meta diff --git a/Assets/model/model/materials/黑色塑料.001.mat b/Assets/AssetRaw/model/model/materials/黑色塑料.001.mat similarity index 100% rename from Assets/model/model/materials/黑色塑料.001.mat rename to Assets/AssetRaw/model/model/materials/黑色塑料.001.mat diff --git a/Assets/model/model/materials/黑色塑料.001.mat.meta b/Assets/AssetRaw/model/model/materials/黑色塑料.001.mat.meta similarity index 100% rename from Assets/model/model/materials/黑色塑料.001.mat.meta rename to Assets/AssetRaw/model/model/materials/黑色塑料.001.mat.meta diff --git a/Assets/model/model/materials/黑色塑料.002.mat b/Assets/AssetRaw/model/model/materials/黑色塑料.002.mat similarity index 100% rename from Assets/model/model/materials/黑色塑料.002.mat rename to Assets/AssetRaw/model/model/materials/黑色塑料.002.mat diff --git a/Assets/model/model/materials/黑色塑料.002.mat.meta b/Assets/AssetRaw/model/model/materials/黑色塑料.002.mat.meta similarity index 100% rename from Assets/model/model/materials/黑色塑料.002.mat.meta rename to Assets/AssetRaw/model/model/materials/黑色塑料.002.mat.meta diff --git a/Assets/model/model/texture.meta b/Assets/AssetRaw/model/model/texture.meta similarity index 100% rename from Assets/model/model/texture.meta rename to Assets/AssetRaw/model/model/texture.meta diff --git a/Assets/model/model/texture/Pallet.tga b/Assets/AssetRaw/model/model/texture/Pallet.tga similarity index 100% rename from Assets/model/model/texture/Pallet.tga rename to Assets/AssetRaw/model/model/texture/Pallet.tga diff --git a/Assets/model/model/texture/Pallet.tga.meta b/Assets/AssetRaw/model/model/texture/Pallet.tga.meta similarity index 100% rename from Assets/model/model/texture/Pallet.tga.meta rename to Assets/AssetRaw/model/model/texture/Pallet.tga.meta diff --git a/Assets/model/model/texture/不锈钢.jpg b/Assets/AssetRaw/model/model/texture/不锈钢.jpg similarity index 100% rename from Assets/model/model/texture/不锈钢.jpg rename to Assets/AssetRaw/model/model/texture/不锈钢.jpg diff --git a/Assets/model/model/texture/不锈钢.jpg.meta b/Assets/AssetRaw/model/model/texture/不锈钢.jpg.meta similarity index 100% rename from Assets/model/model/texture/不锈钢.jpg.meta rename to Assets/AssetRaw/model/model/texture/不锈钢.jpg.meta diff --git a/Assets/model/model/texture/原材料一层.png b/Assets/AssetRaw/model/model/texture/原材料一层.png similarity index 100% rename from Assets/model/model/texture/原材料一层.png rename to Assets/AssetRaw/model/model/texture/原材料一层.png diff --git a/Assets/model/model/texture/原材料一层.png.meta b/Assets/AssetRaw/model/model/texture/原材料一层.png.meta similarity index 100% rename from Assets/model/model/texture/原材料一层.png.meta rename to Assets/AssetRaw/model/model/texture/原材料一层.png.meta diff --git a/Assets/model/model/texture/原材料三层.png b/Assets/AssetRaw/model/model/texture/原材料三层.png similarity index 100% rename from Assets/model/model/texture/原材料三层.png rename to Assets/AssetRaw/model/model/texture/原材料三层.png diff --git a/Assets/model/model/texture/原材料三层.png.meta b/Assets/AssetRaw/model/model/texture/原材料三层.png.meta similarity index 100% rename from Assets/model/model/texture/原材料三层.png.meta rename to Assets/AssetRaw/model/model/texture/原材料三层.png.meta diff --git a/Assets/model/model/texture/原材料二层.png b/Assets/AssetRaw/model/model/texture/原材料二层.png similarity index 100% rename from Assets/model/model/texture/原材料二层.png rename to Assets/AssetRaw/model/model/texture/原材料二层.png diff --git a/Assets/model/model/texture/原材料二层.png.meta b/Assets/AssetRaw/model/model/texture/原材料二层.png.meta similarity index 100% rename from Assets/model/model/texture/原材料二层.png.meta rename to Assets/AssetRaw/model/model/texture/原材料二层.png.meta diff --git a/Assets/model/model/texture/安全黄线.jpeg b/Assets/AssetRaw/model/model/texture/安全黄线.jpeg similarity index 100% rename from Assets/model/model/texture/安全黄线.jpeg rename to Assets/AssetRaw/model/model/texture/安全黄线.jpeg diff --git a/Assets/model/model/texture/安全黄线.jpeg.meta b/Assets/AssetRaw/model/model/texture/安全黄线.jpeg.meta similarity index 100% rename from Assets/model/model/texture/安全黄线.jpeg.meta rename to Assets/AssetRaw/model/model/texture/安全黄线.jpeg.meta diff --git a/Assets/model/model/texture/木板法线.jpeg b/Assets/AssetRaw/model/model/texture/木板法线.jpeg similarity index 100% rename from Assets/model/model/texture/木板法线.jpeg rename to Assets/AssetRaw/model/model/texture/木板法线.jpeg diff --git a/Assets/model/model/texture/木板法线.jpeg.meta b/Assets/AssetRaw/model/model/texture/木板法线.jpeg.meta similarity index 100% rename from Assets/model/model/texture/木板法线.jpeg.meta rename to Assets/AssetRaw/model/model/texture/木板法线.jpeg.meta diff --git a/Assets/model/model/texture/木板贴图.jpeg b/Assets/AssetRaw/model/model/texture/木板贴图.jpeg similarity index 100% rename from Assets/model/model/texture/木板贴图.jpeg rename to Assets/AssetRaw/model/model/texture/木板贴图.jpeg diff --git a/Assets/model/model/texture/木板贴图.jpeg.meta b/Assets/AssetRaw/model/model/texture/木板贴图.jpeg.meta similarity index 100% rename from Assets/model/model/texture/木板贴图.jpeg.meta rename to Assets/AssetRaw/model/model/texture/木板贴图.jpeg.meta diff --git a/Assets/model/model/texture/黄色安全法线.jpeg b/Assets/AssetRaw/model/model/texture/黄色安全法线.jpeg similarity index 100% rename from Assets/model/model/texture/黄色安全法线.jpeg rename to Assets/AssetRaw/model/model/texture/黄色安全法线.jpeg diff --git a/Assets/model/model/texture/黄色安全法线.jpeg.meta b/Assets/AssetRaw/model/model/texture/黄色安全法线.jpeg.meta similarity index 100% rename from Assets/model/model/texture/黄色安全法线.jpeg.meta rename to Assets/AssetRaw/model/model/texture/黄色安全法线.jpeg.meta diff --git a/Assets/model/model/原材料物料.fbx b/Assets/AssetRaw/model/model/原材料物料.fbx similarity index 100% rename from Assets/model/model/原材料物料.fbx rename to Assets/AssetRaw/model/model/原材料物料.fbx diff --git a/Assets/model/model/原材料物料.fbx.meta b/Assets/AssetRaw/model/model/原材料物料.fbx.meta similarity index 100% rename from Assets/model/model/原材料物料.fbx.meta rename to Assets/AssetRaw/model/model/原材料物料.fbx.meta diff --git a/Assets/model/model/原材料立库.fbx b/Assets/AssetRaw/model/model/原材料立库.fbx similarity index 100% rename from Assets/model/model/原材料立库.fbx rename to Assets/AssetRaw/model/model/原材料立库.fbx diff --git a/Assets/model/model/原材料立库.fbx.meta b/Assets/AssetRaw/model/model/原材料立库.fbx.meta similarity index 100% rename from Assets/model/model/原材料立库.fbx.meta rename to Assets/AssetRaw/model/model/原材料立库.fbx.meta diff --git a/Assets/model/model/叉车agv.fbx b/Assets/AssetRaw/model/model/叉车agv.fbx similarity index 100% rename from Assets/model/model/叉车agv.fbx rename to Assets/AssetRaw/model/model/叉车agv.fbx diff --git a/Assets/model/model/叉车agv.fbx.meta b/Assets/AssetRaw/model/model/叉车agv.fbx.meta similarity index 100% rename from Assets/model/model/叉车agv.fbx.meta rename to Assets/AssetRaw/model/model/叉车agv.fbx.meta diff --git a/Assets/model/model/滚筒输送线.fbx b/Assets/AssetRaw/model/model/滚筒输送线.fbx similarity index 100% rename from Assets/model/model/滚筒输送线.fbx rename to Assets/AssetRaw/model/model/滚筒输送线.fbx diff --git a/Assets/model/model/滚筒输送线.fbx.meta b/Assets/AssetRaw/model/model/滚筒输送线.fbx.meta similarity index 100% rename from Assets/model/model/滚筒输送线.fbx.meta rename to Assets/AssetRaw/model/model/滚筒输送线.fbx.meta diff --git a/Assets/model/model/短节滚筒输送线.fbx b/Assets/AssetRaw/model/model/短节滚筒输送线.fbx similarity index 100% rename from Assets/model/model/短节滚筒输送线.fbx rename to Assets/AssetRaw/model/model/短节滚筒输送线.fbx diff --git a/Assets/model/model/短节滚筒输送线.fbx.meta b/Assets/AssetRaw/model/model/短节滚筒输送线.fbx.meta similarity index 100% rename from Assets/model/model/短节滚筒输送线.fbx.meta rename to Assets/AssetRaw/model/model/短节滚筒输送线.fbx.meta diff --git a/Assets/model/prefab.meta b/Assets/AssetRaw/model/prefab.meta similarity index 100% rename from Assets/model/prefab.meta rename to Assets/AssetRaw/model/prefab.meta diff --git a/Assets/model/prefab/AGV_1001.prefab b/Assets/AssetRaw/model/prefab/AGV_1001.prefab similarity index 100% rename from Assets/model/prefab/AGV_1001.prefab rename to Assets/AssetRaw/model/prefab/AGV_1001.prefab diff --git a/Assets/model/prefab/AGV_1001.prefab.meta b/Assets/AssetRaw/model/prefab/AGV_1001.prefab.meta similarity index 100% rename from Assets/model/prefab/AGV_1001.prefab.meta rename to Assets/AssetRaw/model/prefab/AGV_1001.prefab.meta diff --git a/Assets/model/prefab/YCLZT.prefab b/Assets/AssetRaw/model/prefab/YCLZT.prefab similarity index 100% rename from Assets/model/prefab/YCLZT.prefab rename to Assets/AssetRaw/model/prefab/YCLZT.prefab diff --git a/Assets/model/prefab/YCLZT.prefab.meta b/Assets/AssetRaw/model/prefab/YCLZT.prefab.meta similarity index 100% rename from Assets/model/prefab/YCLZT.prefab.meta rename to Assets/AssetRaw/model/prefab/YCLZT.prefab.meta diff --git a/Assets/model/prefab/原材料立库 Variant.prefab b/Assets/AssetRaw/model/prefab/原材料立库 Variant.prefab similarity index 100% rename from Assets/model/prefab/原材料立库 Variant.prefab rename to Assets/AssetRaw/model/prefab/原材料立库 Variant.prefab diff --git a/Assets/model/prefab/原材料立库 Variant.prefab.meta b/Assets/AssetRaw/model/prefab/原材料立库 Variant.prefab.meta similarity index 100% rename from Assets/model/prefab/原材料立库 Variant.prefab.meta rename to Assets/AssetRaw/model/prefab/原材料立库 Variant.prefab.meta diff --git a/Assets/model/prefab/滚筒输送线-01.prefab b/Assets/AssetRaw/model/prefab/滚筒输送线-01.prefab similarity index 100% rename from Assets/model/prefab/滚筒输送线-01.prefab rename to Assets/AssetRaw/model/prefab/滚筒输送线-01.prefab diff --git a/Assets/model/prefab/滚筒输送线-01.prefab.meta b/Assets/AssetRaw/model/prefab/滚筒输送线-01.prefab.meta similarity index 100% rename from Assets/model/prefab/滚筒输送线-01.prefab.meta rename to Assets/AssetRaw/model/prefab/滚筒输送线-01.prefab.meta diff --git a/Assets/model/prefab/滚筒输送线-02 1.prefab b/Assets/AssetRaw/model/prefab/滚筒输送线-02 1.prefab similarity index 100% rename from Assets/model/prefab/滚筒输送线-02 1.prefab rename to Assets/AssetRaw/model/prefab/滚筒输送线-02 1.prefab diff --git a/Assets/model/prefab/滚筒输送线-02 1.prefab.meta b/Assets/AssetRaw/model/prefab/滚筒输送线-02 1.prefab.meta similarity index 100% rename from Assets/model/prefab/滚筒输送线-02 1.prefab.meta rename to Assets/AssetRaw/model/prefab/滚筒输送线-02 1.prefab.meta diff --git a/Assets/model/prefab/滚筒输送线-02.prefab b/Assets/AssetRaw/model/prefab/滚筒输送线-02.prefab similarity index 100% rename from Assets/model/prefab/滚筒输送线-02.prefab rename to Assets/AssetRaw/model/prefab/滚筒输送线-02.prefab diff --git a/Assets/model/prefab/滚筒输送线-02.prefab.meta b/Assets/AssetRaw/model/prefab/滚筒输送线-02.prefab.meta similarity index 100% rename from Assets/model/prefab/滚筒输送线-02.prefab.meta rename to Assets/AssetRaw/model/prefab/滚筒输送线-02.prefab.meta diff --git a/Assets/model/prefab/滚筒输送线-分解.prefab b/Assets/AssetRaw/model/prefab/滚筒输送线-分解.prefab similarity index 100% rename from Assets/model/prefab/滚筒输送线-分解.prefab rename to Assets/AssetRaw/model/prefab/滚筒输送线-分解.prefab diff --git a/Assets/model/prefab/滚筒输送线-分解.prefab.meta b/Assets/AssetRaw/model/prefab/滚筒输送线-分解.prefab.meta similarity index 100% rename from Assets/model/prefab/滚筒输送线-分解.prefab.meta rename to Assets/AssetRaw/model/prefab/滚筒输送线-分解.prefab.meta diff --git a/Assets/model/prefab/面板弹窗.prefab b/Assets/AssetRaw/model/prefab/面板弹窗.prefab similarity index 100% rename from Assets/model/prefab/面板弹窗.prefab rename to Assets/AssetRaw/model/prefab/面板弹窗.prefab diff --git a/Assets/model/prefab/面板弹窗.prefab.meta b/Assets/AssetRaw/model/prefab/面板弹窗.prefab.meta similarity index 100% rename from Assets/model/prefab/面板弹窗.prefab.meta rename to Assets/AssetRaw/model/prefab/面板弹窗.prefab.meta diff --git a/Assets/model/ui.meta b/Assets/AssetRaw/model/ui.meta similarity index 100% rename from Assets/model/ui.meta rename to Assets/AssetRaw/model/ui.meta diff --git a/Assets/model/ui/lang.meta b/Assets/AssetRaw/model/ui/lang.meta similarity index 100% rename from Assets/model/ui/lang.meta rename to Assets/AssetRaw/model/ui/lang.meta diff --git a/Assets/model/ui/lang/msyhbd SDF.asset b/Assets/AssetRaw/model/ui/lang/msyhbd SDF.asset similarity index 100% rename from Assets/model/ui/lang/msyhbd SDF.asset rename to Assets/AssetRaw/model/ui/lang/msyhbd SDF.asset diff --git a/Assets/model/ui/lang/msyhbd SDF.asset.meta b/Assets/AssetRaw/model/ui/lang/msyhbd SDF.asset.meta similarity index 100% rename from Assets/model/ui/lang/msyhbd SDF.asset.meta rename to Assets/AssetRaw/model/ui/lang/msyhbd SDF.asset.meta diff --git a/Assets/model/ui/prefab.meta b/Assets/AssetRaw/model/ui/prefab.meta similarity index 100% rename from Assets/model/ui/prefab.meta rename to Assets/AssetRaw/model/ui/prefab.meta diff --git a/Assets/model/ui/prefab/loading.meta b/Assets/AssetRaw/model/ui/prefab/loading.meta similarity index 100% rename from Assets/model/ui/prefab/loading.meta rename to Assets/AssetRaw/model/ui/prefab/loading.meta diff --git a/Assets/model/ui/prefab/loading/loading.prefab b/Assets/AssetRaw/model/ui/prefab/loading/loading.prefab similarity index 100% rename from Assets/model/ui/prefab/loading/loading.prefab rename to Assets/AssetRaw/model/ui/prefab/loading/loading.prefab diff --git a/Assets/model/ui/prefab/loading/loading.prefab.meta b/Assets/AssetRaw/model/ui/prefab/loading/loading.prefab.meta similarity index 100% rename from Assets/model/ui/prefab/loading/loading.prefab.meta rename to Assets/AssetRaw/model/ui/prefab/loading/loading.prefab.meta diff --git a/Assets/model/ui/source.meta b/Assets/AssetRaw/model/ui/source.meta similarity index 100% rename from Assets/model/ui/source.meta rename to Assets/AssetRaw/model/ui/source.meta diff --git a/Assets/model/ui/source/circle.meta b/Assets/AssetRaw/model/ui/source/circle.meta similarity index 100% rename from Assets/model/ui/source/circle.meta rename to Assets/AssetRaw/model/ui/source/circle.meta diff --git a/Assets/model/ui/source/circle/14.png b/Assets/AssetRaw/model/ui/source/circle/14.png similarity index 100% rename from Assets/model/ui/source/circle/14.png rename to Assets/AssetRaw/model/ui/source/circle/14.png diff --git a/Assets/model/ui/source/circle/14.png.meta b/Assets/AssetRaw/model/ui/source/circle/14.png.meta similarity index 100% rename from Assets/model/ui/source/circle/14.png.meta rename to Assets/AssetRaw/model/ui/source/circle/14.png.meta diff --git a/Assets/model/ui/source/circle/Circle-1px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-1px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-1px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-1px.psd diff --git a/Assets/model/ui/source/circle/Circle-1px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-1px.psd.meta diff --git a/Assets/model/ui/source/circle/Circle-35px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-35px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-35px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-35px.psd diff --git a/Assets/model/ui/source/circle/Circle-35px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-35px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-35px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-35px.psd.meta diff --git a/Assets/model/ui/source/circle/Circle-5px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-5px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-5px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-5px.psd diff --git a/Assets/model/ui/source/circle/Circle-5px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-5px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-5px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-5px.psd.meta diff --git a/Assets/model/ui/source/circle/Circle-Filled-1px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-Filled-1px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-Filled-1px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-Filled-1px.psd diff --git a/Assets/model/ui/source/circle/Circle-Filled-1px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-Filled-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-Filled-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-Filled-1px.psd.meta diff --git a/Assets/model/ui/source/circle/Circle-Semi-1px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-Semi-1px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-Semi-1px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-Semi-1px.psd diff --git a/Assets/model/ui/source/circle/Circle-Semi-1px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-Semi-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-Semi-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-Semi-1px.psd.meta diff --git a/Assets/model/ui/source/circle/Circle-SemiOutLine-1px.psd b/Assets/AssetRaw/model/ui/source/circle/Circle-SemiOutLine-1px.psd similarity index 100% rename from Assets/model/ui/source/circle/Circle-SemiOutLine-1px.psd rename to Assets/AssetRaw/model/ui/source/circle/Circle-SemiOutLine-1px.psd diff --git a/Assets/model/ui/source/circle/Circle-SemiOutLine-1px.psd.meta b/Assets/AssetRaw/model/ui/source/circle/Circle-SemiOutLine-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/circle/Circle-SemiOutLine-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/circle/Circle-SemiOutLine-1px.psd.meta diff --git a/Assets/model/ui/source/icons.meta b/Assets/AssetRaw/model/ui/source/icons.meta similarity index 100% rename from Assets/model/ui/source/icons.meta rename to Assets/AssetRaw/model/ui/source/icons.meta diff --git a/Assets/model/ui/source/icons/001 Home.png b/Assets/AssetRaw/model/ui/source/icons/001 Home.png similarity index 100% rename from Assets/model/ui/source/icons/001 Home.png rename to Assets/AssetRaw/model/ui/source/icons/001 Home.png diff --git a/Assets/model/ui/source/icons/001 Home.png.meta b/Assets/AssetRaw/model/ui/source/icons/001 Home.png.meta similarity index 100% rename from Assets/model/ui/source/icons/001 Home.png.meta rename to Assets/AssetRaw/model/ui/source/icons/001 Home.png.meta diff --git a/Assets/model/ui/source/icons/002 User.png b/Assets/AssetRaw/model/ui/source/icons/002 User.png similarity index 100% rename from Assets/model/ui/source/icons/002 User.png rename to Assets/AssetRaw/model/ui/source/icons/002 User.png diff --git a/Assets/model/ui/source/icons/002 User.png.meta b/Assets/AssetRaw/model/ui/source/icons/002 User.png.meta similarity index 100% rename from Assets/model/ui/source/icons/002 User.png.meta rename to Assets/AssetRaw/model/ui/source/icons/002 User.png.meta diff --git a/Assets/model/ui/source/icons/003 User2.png b/Assets/AssetRaw/model/ui/source/icons/003 User2.png similarity index 100% rename from Assets/model/ui/source/icons/003 User2.png rename to Assets/AssetRaw/model/ui/source/icons/003 User2.png diff --git a/Assets/model/ui/source/icons/003 User2.png.meta b/Assets/AssetRaw/model/ui/source/icons/003 User2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/003 User2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/003 User2.png.meta diff --git a/Assets/model/ui/source/icons/004 Calendar.png b/Assets/AssetRaw/model/ui/source/icons/004 Calendar.png similarity index 100% rename from Assets/model/ui/source/icons/004 Calendar.png rename to Assets/AssetRaw/model/ui/source/icons/004 Calendar.png diff --git a/Assets/model/ui/source/icons/004 Calendar.png.meta b/Assets/AssetRaw/model/ui/source/icons/004 Calendar.png.meta similarity index 100% rename from Assets/model/ui/source/icons/004 Calendar.png.meta rename to Assets/AssetRaw/model/ui/source/icons/004 Calendar.png.meta diff --git a/Assets/model/ui/source/icons/005 CalendarDate.png b/Assets/AssetRaw/model/ui/source/icons/005 CalendarDate.png similarity index 100% rename from Assets/model/ui/source/icons/005 CalendarDate.png rename to Assets/AssetRaw/model/ui/source/icons/005 CalendarDate.png diff --git a/Assets/model/ui/source/icons/005 CalendarDate.png.meta b/Assets/AssetRaw/model/ui/source/icons/005 CalendarDate.png.meta similarity index 100% rename from Assets/model/ui/source/icons/005 CalendarDate.png.meta rename to Assets/AssetRaw/model/ui/source/icons/005 CalendarDate.png.meta diff --git a/Assets/model/ui/source/icons/006 Folder.png b/Assets/AssetRaw/model/ui/source/icons/006 Folder.png similarity index 100% rename from Assets/model/ui/source/icons/006 Folder.png rename to Assets/AssetRaw/model/ui/source/icons/006 Folder.png diff --git a/Assets/model/ui/source/icons/006 Folder.png.meta b/Assets/AssetRaw/model/ui/source/icons/006 Folder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/006 Folder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/006 Folder.png.meta diff --git a/Assets/model/ui/source/icons/007 FolderAdd.png b/Assets/AssetRaw/model/ui/source/icons/007 FolderAdd.png similarity index 100% rename from Assets/model/ui/source/icons/007 FolderAdd.png rename to Assets/AssetRaw/model/ui/source/icons/007 FolderAdd.png diff --git a/Assets/model/ui/source/icons/007 FolderAdd.png.meta b/Assets/AssetRaw/model/ui/source/icons/007 FolderAdd.png.meta similarity index 100% rename from Assets/model/ui/source/icons/007 FolderAdd.png.meta rename to Assets/AssetRaw/model/ui/source/icons/007 FolderAdd.png.meta diff --git a/Assets/model/ui/source/icons/008 Mail.png b/Assets/AssetRaw/model/ui/source/icons/008 Mail.png similarity index 100% rename from Assets/model/ui/source/icons/008 Mail.png rename to Assets/AssetRaw/model/ui/source/icons/008 Mail.png diff --git a/Assets/model/ui/source/icons/008 Mail.png.meta b/Assets/AssetRaw/model/ui/source/icons/008 Mail.png.meta similarity index 100% rename from Assets/model/ui/source/icons/008 Mail.png.meta rename to Assets/AssetRaw/model/ui/source/icons/008 Mail.png.meta diff --git a/Assets/model/ui/source/icons/009 MailOpen.png b/Assets/AssetRaw/model/ui/source/icons/009 MailOpen.png similarity index 100% rename from Assets/model/ui/source/icons/009 MailOpen.png rename to Assets/AssetRaw/model/ui/source/icons/009 MailOpen.png diff --git a/Assets/model/ui/source/icons/009 MailOpen.png.meta b/Assets/AssetRaw/model/ui/source/icons/009 MailOpen.png.meta similarity index 100% rename from Assets/model/ui/source/icons/009 MailOpen.png.meta rename to Assets/AssetRaw/model/ui/source/icons/009 MailOpen.png.meta diff --git a/Assets/model/ui/source/icons/010 Inbox.png b/Assets/AssetRaw/model/ui/source/icons/010 Inbox.png similarity index 100% rename from Assets/model/ui/source/icons/010 Inbox.png rename to Assets/AssetRaw/model/ui/source/icons/010 Inbox.png diff --git a/Assets/model/ui/source/icons/010 Inbox.png.meta b/Assets/AssetRaw/model/ui/source/icons/010 Inbox.png.meta similarity index 100% rename from Assets/model/ui/source/icons/010 Inbox.png.meta rename to Assets/AssetRaw/model/ui/source/icons/010 Inbox.png.meta diff --git a/Assets/model/ui/source/icons/011 InboxDownload.png b/Assets/AssetRaw/model/ui/source/icons/011 InboxDownload.png similarity index 100% rename from Assets/model/ui/source/icons/011 InboxDownload.png rename to Assets/AssetRaw/model/ui/source/icons/011 InboxDownload.png diff --git a/Assets/model/ui/source/icons/011 InboxDownload.png.meta b/Assets/AssetRaw/model/ui/source/icons/011 InboxDownload.png.meta similarity index 100% rename from Assets/model/ui/source/icons/011 InboxDownload.png.meta rename to Assets/AssetRaw/model/ui/source/icons/011 InboxDownload.png.meta diff --git a/Assets/model/ui/source/icons/012 Inboxes.png b/Assets/AssetRaw/model/ui/source/icons/012 Inboxes.png similarity index 100% rename from Assets/model/ui/source/icons/012 Inboxes.png rename to Assets/AssetRaw/model/ui/source/icons/012 Inboxes.png diff --git a/Assets/model/ui/source/icons/012 Inboxes.png.meta b/Assets/AssetRaw/model/ui/source/icons/012 Inboxes.png.meta similarity index 100% rename from Assets/model/ui/source/icons/012 Inboxes.png.meta rename to Assets/AssetRaw/model/ui/source/icons/012 Inboxes.png.meta diff --git a/Assets/model/ui/source/icons/013 MagnifyingGlass.png b/Assets/AssetRaw/model/ui/source/icons/013 MagnifyingGlass.png similarity index 100% rename from Assets/model/ui/source/icons/013 MagnifyingGlass.png rename to Assets/AssetRaw/model/ui/source/icons/013 MagnifyingGlass.png diff --git a/Assets/model/ui/source/icons/013 MagnifyingGlass.png.meta b/Assets/AssetRaw/model/ui/source/icons/013 MagnifyingGlass.png.meta similarity index 100% rename from Assets/model/ui/source/icons/013 MagnifyingGlass.png.meta rename to Assets/AssetRaw/model/ui/source/icons/013 MagnifyingGlass.png.meta diff --git a/Assets/model/ui/source/icons/014 ZoomIn.png b/Assets/AssetRaw/model/ui/source/icons/014 ZoomIn.png similarity index 100% rename from Assets/model/ui/source/icons/014 ZoomIn.png rename to Assets/AssetRaw/model/ui/source/icons/014 ZoomIn.png diff --git a/Assets/model/ui/source/icons/014 ZoomIn.png.meta b/Assets/AssetRaw/model/ui/source/icons/014 ZoomIn.png.meta similarity index 100% rename from Assets/model/ui/source/icons/014 ZoomIn.png.meta rename to Assets/AssetRaw/model/ui/source/icons/014 ZoomIn.png.meta diff --git a/Assets/model/ui/source/icons/015 ZoomOut.png b/Assets/AssetRaw/model/ui/source/icons/015 ZoomOut.png similarity index 100% rename from Assets/model/ui/source/icons/015 ZoomOut.png rename to Assets/AssetRaw/model/ui/source/icons/015 ZoomOut.png diff --git a/Assets/model/ui/source/icons/015 ZoomOut.png.meta b/Assets/AssetRaw/model/ui/source/icons/015 ZoomOut.png.meta similarity index 100% rename from Assets/model/ui/source/icons/015 ZoomOut.png.meta rename to Assets/AssetRaw/model/ui/source/icons/015 ZoomOut.png.meta diff --git a/Assets/model/ui/source/icons/016 Notepad.png b/Assets/AssetRaw/model/ui/source/icons/016 Notepad.png similarity index 100% rename from Assets/model/ui/source/icons/016 Notepad.png rename to Assets/AssetRaw/model/ui/source/icons/016 Notepad.png diff --git a/Assets/model/ui/source/icons/016 Notepad.png.meta b/Assets/AssetRaw/model/ui/source/icons/016 Notepad.png.meta similarity index 100% rename from Assets/model/ui/source/icons/016 Notepad.png.meta rename to Assets/AssetRaw/model/ui/source/icons/016 Notepad.png.meta diff --git a/Assets/model/ui/source/icons/017 Bag.png b/Assets/AssetRaw/model/ui/source/icons/017 Bag.png similarity index 100% rename from Assets/model/ui/source/icons/017 Bag.png rename to Assets/AssetRaw/model/ui/source/icons/017 Bag.png diff --git a/Assets/model/ui/source/icons/017 Bag.png.meta b/Assets/AssetRaw/model/ui/source/icons/017 Bag.png.meta similarity index 100% rename from Assets/model/ui/source/icons/017 Bag.png.meta rename to Assets/AssetRaw/model/ui/source/icons/017 Bag.png.meta diff --git a/Assets/model/ui/source/icons/018 Case.png b/Assets/AssetRaw/model/ui/source/icons/018 Case.png similarity index 100% rename from Assets/model/ui/source/icons/018 Case.png rename to Assets/AssetRaw/model/ui/source/icons/018 Case.png diff --git a/Assets/model/ui/source/icons/018 Case.png.meta b/Assets/AssetRaw/model/ui/source/icons/018 Case.png.meta similarity index 100% rename from Assets/model/ui/source/icons/018 Case.png.meta rename to Assets/AssetRaw/model/ui/source/icons/018 Case.png.meta diff --git a/Assets/model/ui/source/icons/019 Lock.png b/Assets/AssetRaw/model/ui/source/icons/019 Lock.png similarity index 100% rename from Assets/model/ui/source/icons/019 Lock.png rename to Assets/AssetRaw/model/ui/source/icons/019 Lock.png diff --git a/Assets/model/ui/source/icons/019 Lock.png.meta b/Assets/AssetRaw/model/ui/source/icons/019 Lock.png.meta similarity index 100% rename from Assets/model/ui/source/icons/019 Lock.png.meta rename to Assets/AssetRaw/model/ui/source/icons/019 Lock.png.meta diff --git a/Assets/model/ui/source/icons/020 Document.png b/Assets/AssetRaw/model/ui/source/icons/020 Document.png similarity index 100% rename from Assets/model/ui/source/icons/020 Document.png rename to Assets/AssetRaw/model/ui/source/icons/020 Document.png diff --git a/Assets/model/ui/source/icons/020 Document.png.meta b/Assets/AssetRaw/model/ui/source/icons/020 Document.png.meta similarity index 100% rename from Assets/model/ui/source/icons/020 Document.png.meta rename to Assets/AssetRaw/model/ui/source/icons/020 Document.png.meta diff --git a/Assets/model/ui/source/icons/021 Document Text.png b/Assets/AssetRaw/model/ui/source/icons/021 Document Text.png similarity index 100% rename from Assets/model/ui/source/icons/021 Document Text.png rename to Assets/AssetRaw/model/ui/source/icons/021 Document Text.png diff --git a/Assets/model/ui/source/icons/021 Document Text.png.meta b/Assets/AssetRaw/model/ui/source/icons/021 Document Text.png.meta similarity index 100% rename from Assets/model/ui/source/icons/021 Document Text.png.meta rename to Assets/AssetRaw/model/ui/source/icons/021 Document Text.png.meta diff --git a/Assets/model/ui/source/icons/022 Document Add.png b/Assets/AssetRaw/model/ui/source/icons/022 Document Add.png similarity index 100% rename from Assets/model/ui/source/icons/022 Document Add.png rename to Assets/AssetRaw/model/ui/source/icons/022 Document Add.png diff --git a/Assets/model/ui/source/icons/022 Document Add.png.meta b/Assets/AssetRaw/model/ui/source/icons/022 Document Add.png.meta similarity index 100% rename from Assets/model/ui/source/icons/022 Document Add.png.meta rename to Assets/AssetRaw/model/ui/source/icons/022 Document Add.png.meta diff --git a/Assets/model/ui/source/icons/023 Document Delete.png b/Assets/AssetRaw/model/ui/source/icons/023 Document Delete.png similarity index 100% rename from Assets/model/ui/source/icons/023 Document Delete.png rename to Assets/AssetRaw/model/ui/source/icons/023 Document Delete.png diff --git a/Assets/model/ui/source/icons/023 Document Delete.png.meta b/Assets/AssetRaw/model/ui/source/icons/023 Document Delete.png.meta similarity index 100% rename from Assets/model/ui/source/icons/023 Document Delete.png.meta rename to Assets/AssetRaw/model/ui/source/icons/023 Document Delete.png.meta diff --git a/Assets/model/ui/source/icons/024 Computer.png b/Assets/AssetRaw/model/ui/source/icons/024 Computer.png similarity index 100% rename from Assets/model/ui/source/icons/024 Computer.png rename to Assets/AssetRaw/model/ui/source/icons/024 Computer.png diff --git a/Assets/model/ui/source/icons/024 Computer.png.meta b/Assets/AssetRaw/model/ui/source/icons/024 Computer.png.meta similarity index 100% rename from Assets/model/ui/source/icons/024 Computer.png.meta rename to Assets/AssetRaw/model/ui/source/icons/024 Computer.png.meta diff --git a/Assets/model/ui/source/icons/025 Notebook.png b/Assets/AssetRaw/model/ui/source/icons/025 Notebook.png similarity index 100% rename from Assets/model/ui/source/icons/025 Notebook.png rename to Assets/AssetRaw/model/ui/source/icons/025 Notebook.png diff --git a/Assets/model/ui/source/icons/025 Notebook.png.meta b/Assets/AssetRaw/model/ui/source/icons/025 Notebook.png.meta similarity index 100% rename from Assets/model/ui/source/icons/025 Notebook.png.meta rename to Assets/AssetRaw/model/ui/source/icons/025 Notebook.png.meta diff --git a/Assets/model/ui/source/icons/026 Tablet.png b/Assets/AssetRaw/model/ui/source/icons/026 Tablet.png similarity index 100% rename from Assets/model/ui/source/icons/026 Tablet.png rename to Assets/AssetRaw/model/ui/source/icons/026 Tablet.png diff --git a/Assets/model/ui/source/icons/026 Tablet.png.meta b/Assets/AssetRaw/model/ui/source/icons/026 Tablet.png.meta similarity index 100% rename from Assets/model/ui/source/icons/026 Tablet.png.meta rename to Assets/AssetRaw/model/ui/source/icons/026 Tablet.png.meta diff --git a/Assets/model/ui/source/icons/027 Smartphone.png b/Assets/AssetRaw/model/ui/source/icons/027 Smartphone.png similarity index 100% rename from Assets/model/ui/source/icons/027 Smartphone.png rename to Assets/AssetRaw/model/ui/source/icons/027 Smartphone.png diff --git a/Assets/model/ui/source/icons/027 Smartphone.png.meta b/Assets/AssetRaw/model/ui/source/icons/027 Smartphone.png.meta similarity index 100% rename from Assets/model/ui/source/icons/027 Smartphone.png.meta rename to Assets/AssetRaw/model/ui/source/icons/027 Smartphone.png.meta diff --git a/Assets/model/ui/source/icons/028 MP3Player.png b/Assets/AssetRaw/model/ui/source/icons/028 MP3Player.png similarity index 100% rename from Assets/model/ui/source/icons/028 MP3Player.png rename to Assets/AssetRaw/model/ui/source/icons/028 MP3Player.png diff --git a/Assets/model/ui/source/icons/028 MP3Player.png.meta b/Assets/AssetRaw/model/ui/source/icons/028 MP3Player.png.meta similarity index 100% rename from Assets/model/ui/source/icons/028 MP3Player.png.meta rename to Assets/AssetRaw/model/ui/source/icons/028 MP3Player.png.meta diff --git a/Assets/model/ui/source/icons/029 MP3Player2.png b/Assets/AssetRaw/model/ui/source/icons/029 MP3Player2.png similarity index 100% rename from Assets/model/ui/source/icons/029 MP3Player2.png rename to Assets/AssetRaw/model/ui/source/icons/029 MP3Player2.png diff --git a/Assets/model/ui/source/icons/029 MP3Player2.png.meta b/Assets/AssetRaw/model/ui/source/icons/029 MP3Player2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/029 MP3Player2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/029 MP3Player2.png.meta diff --git a/Assets/model/ui/source/icons/030 Camera.png b/Assets/AssetRaw/model/ui/source/icons/030 Camera.png similarity index 100% rename from Assets/model/ui/source/icons/030 Camera.png rename to Assets/AssetRaw/model/ui/source/icons/030 Camera.png diff --git a/Assets/model/ui/source/icons/030 Camera.png.meta b/Assets/AssetRaw/model/ui/source/icons/030 Camera.png.meta similarity index 100% rename from Assets/model/ui/source/icons/030 Camera.png.meta rename to Assets/AssetRaw/model/ui/source/icons/030 Camera.png.meta diff --git a/Assets/model/ui/source/icons/033 PrinterText.png b/Assets/AssetRaw/model/ui/source/icons/033 PrinterText.png similarity index 100% rename from Assets/model/ui/source/icons/033 PrinterText.png rename to Assets/AssetRaw/model/ui/source/icons/033 PrinterText.png diff --git a/Assets/model/ui/source/icons/033 PrinterText.png.meta b/Assets/AssetRaw/model/ui/source/icons/033 PrinterText.png.meta similarity index 100% rename from Assets/model/ui/source/icons/033 PrinterText.png.meta rename to Assets/AssetRaw/model/ui/source/icons/033 PrinterText.png.meta diff --git a/Assets/model/ui/source/icons/034 Microphone.png b/Assets/AssetRaw/model/ui/source/icons/034 Microphone.png similarity index 100% rename from Assets/model/ui/source/icons/034 Microphone.png rename to Assets/AssetRaw/model/ui/source/icons/034 Microphone.png diff --git a/Assets/model/ui/source/icons/034 Microphone.png.meta b/Assets/AssetRaw/model/ui/source/icons/034 Microphone.png.meta similarity index 100% rename from Assets/model/ui/source/icons/034 Microphone.png.meta rename to Assets/AssetRaw/model/ui/source/icons/034 Microphone.png.meta diff --git a/Assets/model/ui/source/icons/036 Battery.png b/Assets/AssetRaw/model/ui/source/icons/036 Battery.png similarity index 100% rename from Assets/model/ui/source/icons/036 Battery.png rename to Assets/AssetRaw/model/ui/source/icons/036 Battery.png diff --git a/Assets/model/ui/source/icons/036 Battery.png.meta b/Assets/AssetRaw/model/ui/source/icons/036 Battery.png.meta similarity index 100% rename from Assets/model/ui/source/icons/036 Battery.png.meta rename to Assets/AssetRaw/model/ui/source/icons/036 Battery.png.meta diff --git a/Assets/model/ui/source/icons/037 ArrowUp.png b/Assets/AssetRaw/model/ui/source/icons/037 ArrowUp.png similarity index 100% rename from Assets/model/ui/source/icons/037 ArrowUp.png rename to Assets/AssetRaw/model/ui/source/icons/037 ArrowUp.png diff --git a/Assets/model/ui/source/icons/037 ArrowUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/037 ArrowUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/037 ArrowUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/037 ArrowUp.png.meta diff --git a/Assets/model/ui/source/icons/038 ArrowDown.png b/Assets/AssetRaw/model/ui/source/icons/038 ArrowDown.png similarity index 100% rename from Assets/model/ui/source/icons/038 ArrowDown.png rename to Assets/AssetRaw/model/ui/source/icons/038 ArrowDown.png diff --git a/Assets/model/ui/source/icons/038 ArrowDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/038 ArrowDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/038 ArrowDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/038 ArrowDown.png.meta diff --git a/Assets/model/ui/source/icons/039 ArrowLeft.png b/Assets/AssetRaw/model/ui/source/icons/039 ArrowLeft.png similarity index 100% rename from Assets/model/ui/source/icons/039 ArrowLeft.png rename to Assets/AssetRaw/model/ui/source/icons/039 ArrowLeft.png diff --git a/Assets/model/ui/source/icons/039 ArrowLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/039 ArrowLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/039 ArrowLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/039 ArrowLeft.png.meta diff --git a/Assets/model/ui/source/icons/040 ArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/040 ArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/040 ArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/040 ArrowRight.png diff --git a/Assets/model/ui/source/icons/040 ArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/040 ArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/040 ArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/040 ArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/041 ArrowsApart.png b/Assets/AssetRaw/model/ui/source/icons/041 ArrowsApart.png similarity index 100% rename from Assets/model/ui/source/icons/041 ArrowsApart.png rename to Assets/AssetRaw/model/ui/source/icons/041 ArrowsApart.png diff --git a/Assets/model/ui/source/icons/041 ArrowsApart.png.meta b/Assets/AssetRaw/model/ui/source/icons/041 ArrowsApart.png.meta similarity index 100% rename from Assets/model/ui/source/icons/041 ArrowsApart.png.meta rename to Assets/AssetRaw/model/ui/source/icons/041 ArrowsApart.png.meta diff --git a/Assets/model/ui/source/icons/042 ArrowsTogether.png b/Assets/AssetRaw/model/ui/source/icons/042 ArrowsTogether.png similarity index 100% rename from Assets/model/ui/source/icons/042 ArrowsTogether.png rename to Assets/AssetRaw/model/ui/source/icons/042 ArrowsTogether.png diff --git a/Assets/model/ui/source/icons/042 ArrowsTogether.png.meta b/Assets/AssetRaw/model/ui/source/icons/042 ArrowsTogether.png.meta similarity index 100% rename from Assets/model/ui/source/icons/042 ArrowsTogether.png.meta rename to Assets/AssetRaw/model/ui/source/icons/042 ArrowsTogether.png.meta diff --git a/Assets/model/ui/source/icons/043 AirPlay.png b/Assets/AssetRaw/model/ui/source/icons/043 AirPlay.png similarity index 100% rename from Assets/model/ui/source/icons/043 AirPlay.png rename to Assets/AssetRaw/model/ui/source/icons/043 AirPlay.png diff --git a/Assets/model/ui/source/icons/043 AirPlay.png.meta b/Assets/AssetRaw/model/ui/source/icons/043 AirPlay.png.meta similarity index 100% rename from Assets/model/ui/source/icons/043 AirPlay.png.meta rename to Assets/AssetRaw/model/ui/source/icons/043 AirPlay.png.meta diff --git a/Assets/model/ui/source/icons/044 Repeat.png b/Assets/AssetRaw/model/ui/source/icons/044 Repeat.png similarity index 100% rename from Assets/model/ui/source/icons/044 Repeat.png rename to Assets/AssetRaw/model/ui/source/icons/044 Repeat.png diff --git a/Assets/model/ui/source/icons/044 Repeat.png.meta b/Assets/AssetRaw/model/ui/source/icons/044 Repeat.png.meta similarity index 100% rename from Assets/model/ui/source/icons/044 Repeat.png.meta rename to Assets/AssetRaw/model/ui/source/icons/044 Repeat.png.meta diff --git a/Assets/model/ui/source/icons/045 Shuffle.png b/Assets/AssetRaw/model/ui/source/icons/045 Shuffle.png similarity index 100% rename from Assets/model/ui/source/icons/045 Shuffle.png rename to Assets/AssetRaw/model/ui/source/icons/045 Shuffle.png diff --git a/Assets/model/ui/source/icons/045 Shuffle.png.meta b/Assets/AssetRaw/model/ui/source/icons/045 Shuffle.png.meta similarity index 100% rename from Assets/model/ui/source/icons/045 Shuffle.png.meta rename to Assets/AssetRaw/model/ui/source/icons/045 Shuffle.png.meta diff --git a/Assets/model/ui/source/icons/048 Videocamera.png b/Assets/AssetRaw/model/ui/source/icons/048 Videocamera.png similarity index 100% rename from Assets/model/ui/source/icons/048 Videocamera.png rename to Assets/AssetRaw/model/ui/source/icons/048 Videocamera.png diff --git a/Assets/model/ui/source/icons/048 Videocamera.png.meta b/Assets/AssetRaw/model/ui/source/icons/048 Videocamera.png.meta similarity index 100% rename from Assets/model/ui/source/icons/048 Videocamera.png.meta rename to Assets/AssetRaw/model/ui/source/icons/048 Videocamera.png.meta diff --git a/Assets/model/ui/source/icons/049 Disk.png b/Assets/AssetRaw/model/ui/source/icons/049 Disk.png similarity index 100% rename from Assets/model/ui/source/icons/049 Disk.png rename to Assets/AssetRaw/model/ui/source/icons/049 Disk.png diff --git a/Assets/model/ui/source/icons/049 Disk.png.meta b/Assets/AssetRaw/model/ui/source/icons/049 Disk.png.meta similarity index 100% rename from Assets/model/ui/source/icons/049 Disk.png.meta rename to Assets/AssetRaw/model/ui/source/icons/049 Disk.png.meta diff --git a/Assets/model/ui/source/icons/051 SDCard.png b/Assets/AssetRaw/model/ui/source/icons/051 SDCard.png similarity index 100% rename from Assets/model/ui/source/icons/051 SDCard.png rename to Assets/AssetRaw/model/ui/source/icons/051 SDCard.png diff --git a/Assets/model/ui/source/icons/051 SDCard.png.meta b/Assets/AssetRaw/model/ui/source/icons/051 SDCard.png.meta similarity index 100% rename from Assets/model/ui/source/icons/051 SDCard.png.meta rename to Assets/AssetRaw/model/ui/source/icons/051 SDCard.png.meta diff --git a/Assets/model/ui/source/icons/052 Ruler.png b/Assets/AssetRaw/model/ui/source/icons/052 Ruler.png similarity index 100% rename from Assets/model/ui/source/icons/052 Ruler.png rename to Assets/AssetRaw/model/ui/source/icons/052 Ruler.png diff --git a/Assets/model/ui/source/icons/052 Ruler.png.meta b/Assets/AssetRaw/model/ui/source/icons/052 Ruler.png.meta similarity index 100% rename from Assets/model/ui/source/icons/052 Ruler.png.meta rename to Assets/AssetRaw/model/ui/source/icons/052 Ruler.png.meta diff --git a/Assets/model/ui/source/icons/053 Preferences.png b/Assets/AssetRaw/model/ui/source/icons/053 Preferences.png similarity index 100% rename from Assets/model/ui/source/icons/053 Preferences.png rename to Assets/AssetRaw/model/ui/source/icons/053 Preferences.png diff --git a/Assets/model/ui/source/icons/053 Preferences.png.meta b/Assets/AssetRaw/model/ui/source/icons/053 Preferences.png.meta similarity index 100% rename from Assets/model/ui/source/icons/053 Preferences.png.meta rename to Assets/AssetRaw/model/ui/source/icons/053 Preferences.png.meta diff --git a/Assets/model/ui/source/icons/054 Preferences2.png b/Assets/AssetRaw/model/ui/source/icons/054 Preferences2.png similarity index 100% rename from Assets/model/ui/source/icons/054 Preferences2.png rename to Assets/AssetRaw/model/ui/source/icons/054 Preferences2.png diff --git a/Assets/model/ui/source/icons/054 Preferences2.png.meta b/Assets/AssetRaw/model/ui/source/icons/054 Preferences2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/054 Preferences2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/054 Preferences2.png.meta diff --git a/Assets/model/ui/source/icons/055 CircledArrowUp.png b/Assets/AssetRaw/model/ui/source/icons/055 CircledArrowUp.png similarity index 100% rename from Assets/model/ui/source/icons/055 CircledArrowUp.png rename to Assets/AssetRaw/model/ui/source/icons/055 CircledArrowUp.png diff --git a/Assets/model/ui/source/icons/055 CircledArrowUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/055 CircledArrowUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/055 CircledArrowUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/055 CircledArrowUp.png.meta diff --git a/Assets/model/ui/source/icons/056 CircledArrowDown.png b/Assets/AssetRaw/model/ui/source/icons/056 CircledArrowDown.png similarity index 100% rename from Assets/model/ui/source/icons/056 CircledArrowDown.png rename to Assets/AssetRaw/model/ui/source/icons/056 CircledArrowDown.png diff --git a/Assets/model/ui/source/icons/056 CircledArrowDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/056 CircledArrowDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/056 CircledArrowDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/056 CircledArrowDown.png.meta diff --git a/Assets/model/ui/source/icons/057 CircledArrowLeft.png b/Assets/AssetRaw/model/ui/source/icons/057 CircledArrowLeft.png similarity index 100% rename from Assets/model/ui/source/icons/057 CircledArrowLeft.png rename to Assets/AssetRaw/model/ui/source/icons/057 CircledArrowLeft.png diff --git a/Assets/model/ui/source/icons/057 CircledArrowLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/057 CircledArrowLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/057 CircledArrowLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/057 CircledArrowLeft.png.meta diff --git a/Assets/model/ui/source/icons/058 CircledArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/058 CircledArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/058 CircledArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/058 CircledArrowRight.png diff --git a/Assets/model/ui/source/icons/058 CircledArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/058 CircledArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/058 CircledArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/058 CircledArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/060 Off.png b/Assets/AssetRaw/model/ui/source/icons/060 Off.png similarity index 100% rename from Assets/model/ui/source/icons/060 Off.png rename to Assets/AssetRaw/model/ui/source/icons/060 Off.png diff --git a/Assets/model/ui/source/icons/060 Off.png.meta b/Assets/AssetRaw/model/ui/source/icons/060 Off.png.meta similarity index 100% rename from Assets/model/ui/source/icons/060 Off.png.meta rename to Assets/AssetRaw/model/ui/source/icons/060 Off.png.meta diff --git a/Assets/model/ui/source/icons/061 Sync.png b/Assets/AssetRaw/model/ui/source/icons/061 Sync.png similarity index 100% rename from Assets/model/ui/source/icons/061 Sync.png rename to Assets/AssetRaw/model/ui/source/icons/061 Sync.png diff --git a/Assets/model/ui/source/icons/061 Sync.png.meta b/Assets/AssetRaw/model/ui/source/icons/061 Sync.png.meta similarity index 100% rename from Assets/model/ui/source/icons/061 Sync.png.meta rename to Assets/AssetRaw/model/ui/source/icons/061 Sync.png.meta diff --git a/Assets/model/ui/source/icons/062 Redo.png b/Assets/AssetRaw/model/ui/source/icons/062 Redo.png similarity index 100% rename from Assets/model/ui/source/icons/062 Redo.png rename to Assets/AssetRaw/model/ui/source/icons/062 Redo.png diff --git a/Assets/model/ui/source/icons/062 Redo.png.meta b/Assets/AssetRaw/model/ui/source/icons/062 Redo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/062 Redo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/062 Redo.png.meta diff --git a/Assets/model/ui/source/icons/063 Undo.png b/Assets/AssetRaw/model/ui/source/icons/063 Undo.png similarity index 100% rename from Assets/model/ui/source/icons/063 Undo.png rename to Assets/AssetRaw/model/ui/source/icons/063 Undo.png diff --git a/Assets/model/ui/source/icons/063 Undo.png.meta b/Assets/AssetRaw/model/ui/source/icons/063 Undo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/063 Undo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/063 Undo.png.meta diff --git a/Assets/model/ui/source/icons/064 Backward.png b/Assets/AssetRaw/model/ui/source/icons/064 Backward.png similarity index 100% rename from Assets/model/ui/source/icons/064 Backward.png rename to Assets/AssetRaw/model/ui/source/icons/064 Backward.png diff --git a/Assets/model/ui/source/icons/064 Backward.png.meta b/Assets/AssetRaw/model/ui/source/icons/064 Backward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/064 Backward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/064 Backward.png.meta diff --git a/Assets/model/ui/source/icons/065 Forward.png b/Assets/AssetRaw/model/ui/source/icons/065 Forward.png similarity index 100% rename from Assets/model/ui/source/icons/065 Forward.png rename to Assets/AssetRaw/model/ui/source/icons/065 Forward.png diff --git a/Assets/model/ui/source/icons/065 Forward.png.meta b/Assets/AssetRaw/model/ui/source/icons/065 Forward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/065 Forward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/065 Forward.png.meta diff --git a/Assets/model/ui/source/icons/066 Play.png b/Assets/AssetRaw/model/ui/source/icons/066 Play.png similarity index 100% rename from Assets/model/ui/source/icons/066 Play.png rename to Assets/AssetRaw/model/ui/source/icons/066 Play.png diff --git a/Assets/model/ui/source/icons/066 Play.png.meta b/Assets/AssetRaw/model/ui/source/icons/066 Play.png.meta similarity index 100% rename from Assets/model/ui/source/icons/066 Play.png.meta rename to Assets/AssetRaw/model/ui/source/icons/066 Play.png.meta diff --git a/Assets/model/ui/source/icons/067 Pause.png b/Assets/AssetRaw/model/ui/source/icons/067 Pause.png similarity index 100% rename from Assets/model/ui/source/icons/067 Pause.png rename to Assets/AssetRaw/model/ui/source/icons/067 Pause.png diff --git a/Assets/model/ui/source/icons/067 Pause.png.meta b/Assets/AssetRaw/model/ui/source/icons/067 Pause.png.meta similarity index 100% rename from Assets/model/ui/source/icons/067 Pause.png.meta rename to Assets/AssetRaw/model/ui/source/icons/067 Pause.png.meta diff --git a/Assets/model/ui/source/icons/068 Cancel.png b/Assets/AssetRaw/model/ui/source/icons/068 Cancel.png similarity index 100% rename from Assets/model/ui/source/icons/068 Cancel.png rename to Assets/AssetRaw/model/ui/source/icons/068 Cancel.png diff --git a/Assets/model/ui/source/icons/068 Cancel.png.meta b/Assets/AssetRaw/model/ui/source/icons/068 Cancel.png.meta similarity index 100% rename from Assets/model/ui/source/icons/068 Cancel.png.meta rename to Assets/AssetRaw/model/ui/source/icons/068 Cancel.png.meta diff --git a/Assets/model/ui/source/icons/069 Plus.png b/Assets/AssetRaw/model/ui/source/icons/069 Plus.png similarity index 100% rename from Assets/model/ui/source/icons/069 Plus.png rename to Assets/AssetRaw/model/ui/source/icons/069 Plus.png diff --git a/Assets/model/ui/source/icons/069 Plus.png.meta b/Assets/AssetRaw/model/ui/source/icons/069 Plus.png.meta similarity index 100% rename from Assets/model/ui/source/icons/069 Plus.png.meta rename to Assets/AssetRaw/model/ui/source/icons/069 Plus.png.meta diff --git a/Assets/model/ui/source/icons/070 Minus.png b/Assets/AssetRaw/model/ui/source/icons/070 Minus.png similarity index 100% rename from Assets/model/ui/source/icons/070 Minus.png rename to Assets/AssetRaw/model/ui/source/icons/070 Minus.png diff --git a/Assets/model/ui/source/icons/070 Minus.png.meta b/Assets/AssetRaw/model/ui/source/icons/070 Minus.png.meta similarity index 100% rename from Assets/model/ui/source/icons/070 Minus.png.meta rename to Assets/AssetRaw/model/ui/source/icons/070 Minus.png.meta diff --git a/Assets/model/ui/source/icons/071 Obelus.png b/Assets/AssetRaw/model/ui/source/icons/071 Obelus.png similarity index 100% rename from Assets/model/ui/source/icons/071 Obelus.png rename to Assets/AssetRaw/model/ui/source/icons/071 Obelus.png diff --git a/Assets/model/ui/source/icons/071 Obelus.png.meta b/Assets/AssetRaw/model/ui/source/icons/071 Obelus.png.meta similarity index 100% rename from Assets/model/ui/source/icons/071 Obelus.png.meta rename to Assets/AssetRaw/model/ui/source/icons/071 Obelus.png.meta diff --git a/Assets/model/ui/source/icons/072 Tag.png b/Assets/AssetRaw/model/ui/source/icons/072 Tag.png similarity index 100% rename from Assets/model/ui/source/icons/072 Tag.png rename to Assets/AssetRaw/model/ui/source/icons/072 Tag.png diff --git a/Assets/model/ui/source/icons/072 Tag.png.meta b/Assets/AssetRaw/model/ui/source/icons/072 Tag.png.meta similarity index 100% rename from Assets/model/ui/source/icons/072 Tag.png.meta rename to Assets/AssetRaw/model/ui/source/icons/072 Tag.png.meta diff --git a/Assets/model/ui/source/icons/073 RSS.png b/Assets/AssetRaw/model/ui/source/icons/073 RSS.png similarity index 100% rename from Assets/model/ui/source/icons/073 RSS.png rename to Assets/AssetRaw/model/ui/source/icons/073 RSS.png diff --git a/Assets/model/ui/source/icons/073 RSS.png.meta b/Assets/AssetRaw/model/ui/source/icons/073 RSS.png.meta similarity index 100% rename from Assets/model/ui/source/icons/073 RSS.png.meta rename to Assets/AssetRaw/model/ui/source/icons/073 RSS.png.meta diff --git a/Assets/model/ui/source/icons/074 ArchieveBox.png b/Assets/AssetRaw/model/ui/source/icons/074 ArchieveBox.png similarity index 100% rename from Assets/model/ui/source/icons/074 ArchieveBox.png rename to Assets/AssetRaw/model/ui/source/icons/074 ArchieveBox.png diff --git a/Assets/model/ui/source/icons/074 ArchieveBox.png.meta b/Assets/AssetRaw/model/ui/source/icons/074 ArchieveBox.png.meta similarity index 100% rename from Assets/model/ui/source/icons/074 ArchieveBox.png.meta rename to Assets/AssetRaw/model/ui/source/icons/074 ArchieveBox.png.meta diff --git a/Assets/model/ui/source/icons/075 Globe.png b/Assets/AssetRaw/model/ui/source/icons/075 Globe.png similarity index 100% rename from Assets/model/ui/source/icons/075 Globe.png rename to Assets/AssetRaw/model/ui/source/icons/075 Globe.png diff --git a/Assets/model/ui/source/icons/075 Globe.png.meta b/Assets/AssetRaw/model/ui/source/icons/075 Globe.png.meta similarity index 100% rename from Assets/model/ui/source/icons/075 Globe.png.meta rename to Assets/AssetRaw/model/ui/source/icons/075 Globe.png.meta diff --git a/Assets/model/ui/source/icons/076 LocationArrow.png b/Assets/AssetRaw/model/ui/source/icons/076 LocationArrow.png similarity index 100% rename from Assets/model/ui/source/icons/076 LocationArrow.png rename to Assets/AssetRaw/model/ui/source/icons/076 LocationArrow.png diff --git a/Assets/model/ui/source/icons/076 LocationArrow.png.meta b/Assets/AssetRaw/model/ui/source/icons/076 LocationArrow.png.meta similarity index 100% rename from Assets/model/ui/source/icons/076 LocationArrow.png.meta rename to Assets/AssetRaw/model/ui/source/icons/076 LocationArrow.png.meta diff --git a/Assets/model/ui/source/icons/077 Location.png b/Assets/AssetRaw/model/ui/source/icons/077 Location.png similarity index 100% rename from Assets/model/ui/source/icons/077 Location.png rename to Assets/AssetRaw/model/ui/source/icons/077 Location.png diff --git a/Assets/model/ui/source/icons/077 Location.png.meta b/Assets/AssetRaw/model/ui/source/icons/077 Location.png.meta similarity index 100% rename from Assets/model/ui/source/icons/077 Location.png.meta rename to Assets/AssetRaw/model/ui/source/icons/077 Location.png.meta diff --git a/Assets/model/ui/source/icons/078 Pin.png b/Assets/AssetRaw/model/ui/source/icons/078 Pin.png similarity index 100% rename from Assets/model/ui/source/icons/078 Pin.png rename to Assets/AssetRaw/model/ui/source/icons/078 Pin.png diff --git a/Assets/model/ui/source/icons/078 Pin.png.meta b/Assets/AssetRaw/model/ui/source/icons/078 Pin.png.meta similarity index 100% rename from Assets/model/ui/source/icons/078 Pin.png.meta rename to Assets/AssetRaw/model/ui/source/icons/078 Pin.png.meta diff --git a/Assets/model/ui/source/icons/079 Pin2.png b/Assets/AssetRaw/model/ui/source/icons/079 Pin2.png similarity index 100% rename from Assets/model/ui/source/icons/079 Pin2.png rename to Assets/AssetRaw/model/ui/source/icons/079 Pin2.png diff --git a/Assets/model/ui/source/icons/079 Pin2.png.meta b/Assets/AssetRaw/model/ui/source/icons/079 Pin2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/079 Pin2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/079 Pin2.png.meta diff --git a/Assets/model/ui/source/icons/080 Trash.png b/Assets/AssetRaw/model/ui/source/icons/080 Trash.png similarity index 100% rename from Assets/model/ui/source/icons/080 Trash.png rename to Assets/AssetRaw/model/ui/source/icons/080 Trash.png diff --git a/Assets/model/ui/source/icons/080 Trash.png.meta b/Assets/AssetRaw/model/ui/source/icons/080 Trash.png.meta similarity index 100% rename from Assets/model/ui/source/icons/080 Trash.png.meta rename to Assets/AssetRaw/model/ui/source/icons/080 Trash.png.meta diff --git a/Assets/model/ui/source/icons/081 Pen.png b/Assets/AssetRaw/model/ui/source/icons/081 Pen.png similarity index 100% rename from Assets/model/ui/source/icons/081 Pen.png rename to Assets/AssetRaw/model/ui/source/icons/081 Pen.png diff --git a/Assets/model/ui/source/icons/081 Pen.png.meta b/Assets/AssetRaw/model/ui/source/icons/081 Pen.png.meta similarity index 100% rename from Assets/model/ui/source/icons/081 Pen.png.meta rename to Assets/AssetRaw/model/ui/source/icons/081 Pen.png.meta diff --git a/Assets/model/ui/source/icons/082 Earphones.png b/Assets/AssetRaw/model/ui/source/icons/082 Earphones.png similarity index 100% rename from Assets/model/ui/source/icons/082 Earphones.png rename to Assets/AssetRaw/model/ui/source/icons/082 Earphones.png diff --git a/Assets/model/ui/source/icons/082 Earphones.png.meta b/Assets/AssetRaw/model/ui/source/icons/082 Earphones.png.meta similarity index 100% rename from Assets/model/ui/source/icons/082 Earphones.png.meta rename to Assets/AssetRaw/model/ui/source/icons/082 Earphones.png.meta diff --git a/Assets/model/ui/source/icons/083 Music.png b/Assets/AssetRaw/model/ui/source/icons/083 Music.png similarity index 100% rename from Assets/model/ui/source/icons/083 Music.png rename to Assets/AssetRaw/model/ui/source/icons/083 Music.png diff --git a/Assets/model/ui/source/icons/083 Music.png.meta b/Assets/AssetRaw/model/ui/source/icons/083 Music.png.meta similarity index 100% rename from Assets/model/ui/source/icons/083 Music.png.meta rename to Assets/AssetRaw/model/ui/source/icons/083 Music.png.meta diff --git a/Assets/model/ui/source/icons/084 Photo.png b/Assets/AssetRaw/model/ui/source/icons/084 Photo.png similarity index 100% rename from Assets/model/ui/source/icons/084 Photo.png rename to Assets/AssetRaw/model/ui/source/icons/084 Photo.png diff --git a/Assets/model/ui/source/icons/084 Photo.png.meta b/Assets/AssetRaw/model/ui/source/icons/084 Photo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/084 Photo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/084 Photo.png.meta diff --git a/Assets/model/ui/source/icons/085 Movie.png b/Assets/AssetRaw/model/ui/source/icons/085 Movie.png similarity index 100% rename from Assets/model/ui/source/icons/085 Movie.png rename to Assets/AssetRaw/model/ui/source/icons/085 Movie.png diff --git a/Assets/model/ui/source/icons/085 Movie.png.meta b/Assets/AssetRaw/model/ui/source/icons/085 Movie.png.meta similarity index 100% rename from Assets/model/ui/source/icons/085 Movie.png.meta rename to Assets/AssetRaw/model/ui/source/icons/085 Movie.png.meta diff --git a/Assets/model/ui/source/icons/086 Airplane.png b/Assets/AssetRaw/model/ui/source/icons/086 Airplane.png similarity index 100% rename from Assets/model/ui/source/icons/086 Airplane.png rename to Assets/AssetRaw/model/ui/source/icons/086 Airplane.png diff --git a/Assets/model/ui/source/icons/086 Airplane.png.meta b/Assets/AssetRaw/model/ui/source/icons/086 Airplane.png.meta similarity index 100% rename from Assets/model/ui/source/icons/086 Airplane.png.meta rename to Assets/AssetRaw/model/ui/source/icons/086 Airplane.png.meta diff --git a/Assets/model/ui/source/icons/087 Speechbubbles.png b/Assets/AssetRaw/model/ui/source/icons/087 Speechbubbles.png similarity index 100% rename from Assets/model/ui/source/icons/087 Speechbubbles.png rename to Assets/AssetRaw/model/ui/source/icons/087 Speechbubbles.png diff --git a/Assets/model/ui/source/icons/087 Speechbubbles.png.meta b/Assets/AssetRaw/model/ui/source/icons/087 Speechbubbles.png.meta similarity index 100% rename from Assets/model/ui/source/icons/087 Speechbubbles.png.meta rename to Assets/AssetRaw/model/ui/source/icons/087 Speechbubbles.png.meta diff --git a/Assets/model/ui/source/icons/088 Speechbubble.png b/Assets/AssetRaw/model/ui/source/icons/088 Speechbubble.png similarity index 100% rename from Assets/model/ui/source/icons/088 Speechbubble.png rename to Assets/AssetRaw/model/ui/source/icons/088 Speechbubble.png diff --git a/Assets/model/ui/source/icons/088 Speechbubble.png.meta b/Assets/AssetRaw/model/ui/source/icons/088 Speechbubble.png.meta similarity index 100% rename from Assets/model/ui/source/icons/088 Speechbubble.png.meta rename to Assets/AssetRaw/model/ui/source/icons/088 Speechbubble.png.meta diff --git a/Assets/model/ui/source/icons/089 Speechbubble2.png b/Assets/AssetRaw/model/ui/source/icons/089 Speechbubble2.png similarity index 100% rename from Assets/model/ui/source/icons/089 Speechbubble2.png rename to Assets/AssetRaw/model/ui/source/icons/089 Speechbubble2.png diff --git a/Assets/model/ui/source/icons/089 Speechbubble2.png.meta b/Assets/AssetRaw/model/ui/source/icons/089 Speechbubble2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/089 Speechbubble2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/089 Speechbubble2.png.meta diff --git a/Assets/model/ui/source/icons/090 Notes.png b/Assets/AssetRaw/model/ui/source/icons/090 Notes.png similarity index 100% rename from Assets/model/ui/source/icons/090 Notes.png rename to Assets/AssetRaw/model/ui/source/icons/090 Notes.png diff --git a/Assets/model/ui/source/icons/090 Notes.png.meta b/Assets/AssetRaw/model/ui/source/icons/090 Notes.png.meta similarity index 100% rename from Assets/model/ui/source/icons/090 Notes.png.meta rename to Assets/AssetRaw/model/ui/source/icons/090 Notes.png.meta diff --git a/Assets/model/ui/source/icons/091 Left-Adjusted.png b/Assets/AssetRaw/model/ui/source/icons/091 Left-Adjusted.png similarity index 100% rename from Assets/model/ui/source/icons/091 Left-Adjusted.png rename to Assets/AssetRaw/model/ui/source/icons/091 Left-Adjusted.png diff --git a/Assets/model/ui/source/icons/091 Left-Adjusted.png.meta b/Assets/AssetRaw/model/ui/source/icons/091 Left-Adjusted.png.meta similarity index 100% rename from Assets/model/ui/source/icons/091 Left-Adjusted.png.meta rename to Assets/AssetRaw/model/ui/source/icons/091 Left-Adjusted.png.meta diff --git a/Assets/model/ui/source/icons/092 Centered.png b/Assets/AssetRaw/model/ui/source/icons/092 Centered.png similarity index 100% rename from Assets/model/ui/source/icons/092 Centered.png rename to Assets/AssetRaw/model/ui/source/icons/092 Centered.png diff --git a/Assets/model/ui/source/icons/092 Centered.png.meta b/Assets/AssetRaw/model/ui/source/icons/092 Centered.png.meta similarity index 100% rename from Assets/model/ui/source/icons/092 Centered.png.meta rename to Assets/AssetRaw/model/ui/source/icons/092 Centered.png.meta diff --git a/Assets/model/ui/source/icons/093 Right-Adjusted.png b/Assets/AssetRaw/model/ui/source/icons/093 Right-Adjusted.png similarity index 100% rename from Assets/model/ui/source/icons/093 Right-Adjusted.png rename to Assets/AssetRaw/model/ui/source/icons/093 Right-Adjusted.png diff --git a/Assets/model/ui/source/icons/093 Right-Adjusted.png.meta b/Assets/AssetRaw/model/ui/source/icons/093 Right-Adjusted.png.meta similarity index 100% rename from Assets/model/ui/source/icons/093 Right-Adjusted.png.meta rename to Assets/AssetRaw/model/ui/source/icons/093 Right-Adjusted.png.meta diff --git a/Assets/model/ui/source/icons/094 Justification.png b/Assets/AssetRaw/model/ui/source/icons/094 Justification.png similarity index 100% rename from Assets/model/ui/source/icons/094 Justification.png rename to Assets/AssetRaw/model/ui/source/icons/094 Justification.png diff --git a/Assets/model/ui/source/icons/094 Justification.png.meta b/Assets/AssetRaw/model/ui/source/icons/094 Justification.png.meta similarity index 100% rename from Assets/model/ui/source/icons/094 Justification.png.meta rename to Assets/AssetRaw/model/ui/source/icons/094 Justification.png.meta diff --git a/Assets/model/ui/source/icons/095 Chart.png b/Assets/AssetRaw/model/ui/source/icons/095 Chart.png similarity index 100% rename from Assets/model/ui/source/icons/095 Chart.png rename to Assets/AssetRaw/model/ui/source/icons/095 Chart.png diff --git a/Assets/model/ui/source/icons/095 Chart.png.meta b/Assets/AssetRaw/model/ui/source/icons/095 Chart.png.meta similarity index 100% rename from Assets/model/ui/source/icons/095 Chart.png.meta rename to Assets/AssetRaw/model/ui/source/icons/095 Chart.png.meta diff --git a/Assets/model/ui/source/icons/096 Textform.png b/Assets/AssetRaw/model/ui/source/icons/096 Textform.png similarity index 100% rename from Assets/model/ui/source/icons/096 Textform.png rename to Assets/AssetRaw/model/ui/source/icons/096 Textform.png diff --git a/Assets/model/ui/source/icons/096 Textform.png.meta b/Assets/AssetRaw/model/ui/source/icons/096 Textform.png.meta similarity index 100% rename from Assets/model/ui/source/icons/096 Textform.png.meta rename to Assets/AssetRaw/model/ui/source/icons/096 Textform.png.meta diff --git a/Assets/model/ui/source/icons/097 Forms.png b/Assets/AssetRaw/model/ui/source/icons/097 Forms.png similarity index 100% rename from Assets/model/ui/source/icons/097 Forms.png rename to Assets/AssetRaw/model/ui/source/icons/097 Forms.png diff --git a/Assets/model/ui/source/icons/097 Forms.png.meta b/Assets/AssetRaw/model/ui/source/icons/097 Forms.png.meta similarity index 100% rename from Assets/model/ui/source/icons/097 Forms.png.meta rename to Assets/AssetRaw/model/ui/source/icons/097 Forms.png.meta diff --git a/Assets/model/ui/source/icons/098 Spreadsheet.png b/Assets/AssetRaw/model/ui/source/icons/098 Spreadsheet.png similarity index 100% rename from Assets/model/ui/source/icons/098 Spreadsheet.png rename to Assets/AssetRaw/model/ui/source/icons/098 Spreadsheet.png diff --git a/Assets/model/ui/source/icons/098 Spreadsheet.png.meta b/Assets/AssetRaw/model/ui/source/icons/098 Spreadsheet.png.meta similarity index 100% rename from Assets/model/ui/source/icons/098 Spreadsheet.png.meta rename to Assets/AssetRaw/model/ui/source/icons/098 Spreadsheet.png.meta diff --git a/Assets/model/ui/source/icons/099 Mark.png b/Assets/AssetRaw/model/ui/source/icons/099 Mark.png similarity index 100% rename from Assets/model/ui/source/icons/099 Mark.png rename to Assets/AssetRaw/model/ui/source/icons/099 Mark.png diff --git a/Assets/model/ui/source/icons/099 Mark.png.meta b/Assets/AssetRaw/model/ui/source/icons/099 Mark.png.meta similarity index 100% rename from Assets/model/ui/source/icons/099 Mark.png.meta rename to Assets/AssetRaw/model/ui/source/icons/099 Mark.png.meta diff --git a/Assets/model/ui/source/icons/100 Mark2.png b/Assets/AssetRaw/model/ui/source/icons/100 Mark2.png similarity index 100% rename from Assets/model/ui/source/icons/100 Mark2.png rename to Assets/AssetRaw/model/ui/source/icons/100 Mark2.png diff --git a/Assets/model/ui/source/icons/100 Mark2.png.meta b/Assets/AssetRaw/model/ui/source/icons/100 Mark2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/100 Mark2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/100 Mark2.png.meta diff --git a/Assets/model/ui/source/icons/101 Forward.png b/Assets/AssetRaw/model/ui/source/icons/101 Forward.png similarity index 100% rename from Assets/model/ui/source/icons/101 Forward.png rename to Assets/AssetRaw/model/ui/source/icons/101 Forward.png diff --git a/Assets/model/ui/source/icons/101 Forward.png.meta b/Assets/AssetRaw/model/ui/source/icons/101 Forward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/101 Forward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/101 Forward.png.meta diff --git a/Assets/model/ui/source/icons/102 Backward.png b/Assets/AssetRaw/model/ui/source/icons/102 Backward.png similarity index 100% rename from Assets/model/ui/source/icons/102 Backward.png rename to Assets/AssetRaw/model/ui/source/icons/102 Backward.png diff --git a/Assets/model/ui/source/icons/102 Backward.png.meta b/Assets/AssetRaw/model/ui/source/icons/102 Backward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/102 Backward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/102 Backward.png.meta diff --git a/Assets/model/ui/source/icons/103 Bold.png b/Assets/AssetRaw/model/ui/source/icons/103 Bold.png similarity index 100% rename from Assets/model/ui/source/icons/103 Bold.png rename to Assets/AssetRaw/model/ui/source/icons/103 Bold.png diff --git a/Assets/model/ui/source/icons/103 Bold.png.meta b/Assets/AssetRaw/model/ui/source/icons/103 Bold.png.meta similarity index 100% rename from Assets/model/ui/source/icons/103 Bold.png.meta rename to Assets/AssetRaw/model/ui/source/icons/103 Bold.png.meta diff --git a/Assets/model/ui/source/icons/104 Italic.png b/Assets/AssetRaw/model/ui/source/icons/104 Italic.png similarity index 100% rename from Assets/model/ui/source/icons/104 Italic.png rename to Assets/AssetRaw/model/ui/source/icons/104 Italic.png diff --git a/Assets/model/ui/source/icons/104 Italic.png.meta b/Assets/AssetRaw/model/ui/source/icons/104 Italic.png.meta similarity index 100% rename from Assets/model/ui/source/icons/104 Italic.png.meta rename to Assets/AssetRaw/model/ui/source/icons/104 Italic.png.meta diff --git a/Assets/model/ui/source/icons/105 Underline.png b/Assets/AssetRaw/model/ui/source/icons/105 Underline.png similarity index 100% rename from Assets/model/ui/source/icons/105 Underline.png rename to Assets/AssetRaw/model/ui/source/icons/105 Underline.png diff --git a/Assets/model/ui/source/icons/105 Underline.png.meta b/Assets/AssetRaw/model/ui/source/icons/105 Underline.png.meta similarity index 100% rename from Assets/model/ui/source/icons/105 Underline.png.meta rename to Assets/AssetRaw/model/ui/source/icons/105 Underline.png.meta diff --git a/Assets/model/ui/source/icons/106 Fonts.png b/Assets/AssetRaw/model/ui/source/icons/106 Fonts.png similarity index 100% rename from Assets/model/ui/source/icons/106 Fonts.png rename to Assets/AssetRaw/model/ui/source/icons/106 Fonts.png diff --git a/Assets/model/ui/source/icons/106 Fonts.png.meta b/Assets/AssetRaw/model/ui/source/icons/106 Fonts.png.meta similarity index 100% rename from Assets/model/ui/source/icons/106 Fonts.png.meta rename to Assets/AssetRaw/model/ui/source/icons/106 Fonts.png.meta diff --git a/Assets/model/ui/source/icons/107 Flag.png b/Assets/AssetRaw/model/ui/source/icons/107 Flag.png similarity index 100% rename from Assets/model/ui/source/icons/107 Flag.png rename to Assets/AssetRaw/model/ui/source/icons/107 Flag.png diff --git a/Assets/model/ui/source/icons/107 Flag.png.meta b/Assets/AssetRaw/model/ui/source/icons/107 Flag.png.meta similarity index 100% rename from Assets/model/ui/source/icons/107 Flag.png.meta rename to Assets/AssetRaw/model/ui/source/icons/107 Flag.png.meta diff --git a/Assets/model/ui/source/icons/108 Bookmark.png b/Assets/AssetRaw/model/ui/source/icons/108 Bookmark.png similarity index 100% rename from Assets/model/ui/source/icons/108 Bookmark.png rename to Assets/AssetRaw/model/ui/source/icons/108 Bookmark.png diff --git a/Assets/model/ui/source/icons/108 Bookmark.png.meta b/Assets/AssetRaw/model/ui/source/icons/108 Bookmark.png.meta similarity index 100% rename from Assets/model/ui/source/icons/108 Bookmark.png.meta rename to Assets/AssetRaw/model/ui/source/icons/108 Bookmark.png.meta diff --git a/Assets/model/ui/source/icons/109 RoundedArrowDown.png b/Assets/AssetRaw/model/ui/source/icons/109 RoundedArrowDown.png similarity index 100% rename from Assets/model/ui/source/icons/109 RoundedArrowDown.png rename to Assets/AssetRaw/model/ui/source/icons/109 RoundedArrowDown.png diff --git a/Assets/model/ui/source/icons/109 RoundedArrowDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/109 RoundedArrowDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/109 RoundedArrowDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/109 RoundedArrowDown.png.meta diff --git a/Assets/model/ui/source/icons/110 RoundedArrowUp.png b/Assets/AssetRaw/model/ui/source/icons/110 RoundedArrowUp.png similarity index 100% rename from Assets/model/ui/source/icons/110 RoundedArrowUp.png rename to Assets/AssetRaw/model/ui/source/icons/110 RoundedArrowUp.png diff --git a/Assets/model/ui/source/icons/110 RoundedArrowUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/110 RoundedArrowUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/110 RoundedArrowUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/110 RoundedArrowUp.png.meta diff --git a/Assets/model/ui/source/icons/111 RoundedArrowLeft.png b/Assets/AssetRaw/model/ui/source/icons/111 RoundedArrowLeft.png similarity index 100% rename from Assets/model/ui/source/icons/111 RoundedArrowLeft.png rename to Assets/AssetRaw/model/ui/source/icons/111 RoundedArrowLeft.png diff --git a/Assets/model/ui/source/icons/111 RoundedArrowLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/111 RoundedArrowLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/111 RoundedArrowLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/111 RoundedArrowLeft.png.meta diff --git a/Assets/model/ui/source/icons/112 RoundedArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/112 RoundedArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/112 RoundedArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/112 RoundedArrowRight.png diff --git a/Assets/model/ui/source/icons/112 RoundedArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/112 RoundedArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/112 RoundedArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/112 RoundedArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/113 Grid.png b/Assets/AssetRaw/model/ui/source/icons/113 Grid.png similarity index 100% rename from Assets/model/ui/source/icons/113 Grid.png rename to Assets/AssetRaw/model/ui/source/icons/113 Grid.png diff --git a/Assets/model/ui/source/icons/113 Grid.png.meta b/Assets/AssetRaw/model/ui/source/icons/113 Grid.png.meta similarity index 100% rename from Assets/model/ui/source/icons/113 Grid.png.meta rename to Assets/AssetRaw/model/ui/source/icons/113 Grid.png.meta diff --git a/Assets/model/ui/source/icons/114 Grid2.png b/Assets/AssetRaw/model/ui/source/icons/114 Grid2.png similarity index 100% rename from Assets/model/ui/source/icons/114 Grid2.png rename to Assets/AssetRaw/model/ui/source/icons/114 Grid2.png diff --git a/Assets/model/ui/source/icons/114 Grid2.png.meta b/Assets/AssetRaw/model/ui/source/icons/114 Grid2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/114 Grid2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/114 Grid2.png.meta diff --git a/Assets/model/ui/source/icons/115 List.png b/Assets/AssetRaw/model/ui/source/icons/115 List.png similarity index 100% rename from Assets/model/ui/source/icons/115 List.png rename to Assets/AssetRaw/model/ui/source/icons/115 List.png diff --git a/Assets/model/ui/source/icons/115 List.png.meta b/Assets/AssetRaw/model/ui/source/icons/115 List.png.meta similarity index 100% rename from Assets/model/ui/source/icons/115 List.png.meta rename to Assets/AssetRaw/model/ui/source/icons/115 List.png.meta diff --git a/Assets/model/ui/source/icons/116 List2.png b/Assets/AssetRaw/model/ui/source/icons/116 List2.png similarity index 100% rename from Assets/model/ui/source/icons/116 List2.png rename to Assets/AssetRaw/model/ui/source/icons/116 List2.png diff --git a/Assets/model/ui/source/icons/116 List2.png.meta b/Assets/AssetRaw/model/ui/source/icons/116 List2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/116 List2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/116 List2.png.meta diff --git a/Assets/model/ui/source/icons/117 CoverFlow.png b/Assets/AssetRaw/model/ui/source/icons/117 CoverFlow.png similarity index 100% rename from Assets/model/ui/source/icons/117 CoverFlow.png rename to Assets/AssetRaw/model/ui/source/icons/117 CoverFlow.png diff --git a/Assets/model/ui/source/icons/117 CoverFlow.png.meta b/Assets/AssetRaw/model/ui/source/icons/117 CoverFlow.png.meta similarity index 100% rename from Assets/model/ui/source/icons/117 CoverFlow.png.meta rename to Assets/AssetRaw/model/ui/source/icons/117 CoverFlow.png.meta diff --git a/Assets/model/ui/source/icons/118 Columns.png b/Assets/AssetRaw/model/ui/source/icons/118 Columns.png similarity index 100% rename from Assets/model/ui/source/icons/118 Columns.png rename to Assets/AssetRaw/model/ui/source/icons/118 Columns.png diff --git a/Assets/model/ui/source/icons/118 Columns.png.meta b/Assets/AssetRaw/model/ui/source/icons/118 Columns.png.meta similarity index 100% rename from Assets/model/ui/source/icons/118 Columns.png.meta rename to Assets/AssetRaw/model/ui/source/icons/118 Columns.png.meta diff --git a/Assets/model/ui/source/icons/119 Eye.png b/Assets/AssetRaw/model/ui/source/icons/119 Eye.png similarity index 100% rename from Assets/model/ui/source/icons/119 Eye.png rename to Assets/AssetRaw/model/ui/source/icons/119 Eye.png diff --git a/Assets/model/ui/source/icons/119 Eye.png.meta b/Assets/AssetRaw/model/ui/source/icons/119 Eye.png.meta similarity index 100% rename from Assets/model/ui/source/icons/119 Eye.png.meta rename to Assets/AssetRaw/model/ui/source/icons/119 Eye.png.meta diff --git a/Assets/model/ui/source/icons/120 Eject.png b/Assets/AssetRaw/model/ui/source/icons/120 Eject.png similarity index 100% rename from Assets/model/ui/source/icons/120 Eject.png rename to Assets/AssetRaw/model/ui/source/icons/120 Eject.png diff --git a/Assets/model/ui/source/icons/120 Eject.png.meta b/Assets/AssetRaw/model/ui/source/icons/120 Eject.png.meta similarity index 100% rename from Assets/model/ui/source/icons/120 Eject.png.meta rename to Assets/AssetRaw/model/ui/source/icons/120 Eject.png.meta diff --git a/Assets/model/ui/source/icons/121 Cloud.png b/Assets/AssetRaw/model/ui/source/icons/121 Cloud.png similarity index 100% rename from Assets/model/ui/source/icons/121 Cloud.png rename to Assets/AssetRaw/model/ui/source/icons/121 Cloud.png diff --git a/Assets/model/ui/source/icons/121 Cloud.png.meta b/Assets/AssetRaw/model/ui/source/icons/121 Cloud.png.meta similarity index 100% rename from Assets/model/ui/source/icons/121 Cloud.png.meta rename to Assets/AssetRaw/model/ui/source/icons/121 Cloud.png.meta diff --git a/Assets/model/ui/source/icons/122 CloudUpload.png b/Assets/AssetRaw/model/ui/source/icons/122 CloudUpload.png similarity index 100% rename from Assets/model/ui/source/icons/122 CloudUpload.png rename to Assets/AssetRaw/model/ui/source/icons/122 CloudUpload.png diff --git a/Assets/model/ui/source/icons/122 CloudUpload.png.meta b/Assets/AssetRaw/model/ui/source/icons/122 CloudUpload.png.meta similarity index 100% rename from Assets/model/ui/source/icons/122 CloudUpload.png.meta rename to Assets/AssetRaw/model/ui/source/icons/122 CloudUpload.png.meta diff --git a/Assets/model/ui/source/icons/123 CloudDownload.png b/Assets/AssetRaw/model/ui/source/icons/123 CloudDownload.png similarity index 100% rename from Assets/model/ui/source/icons/123 CloudDownload.png rename to Assets/AssetRaw/model/ui/source/icons/123 CloudDownload.png diff --git a/Assets/model/ui/source/icons/123 CloudDownload.png.meta b/Assets/AssetRaw/model/ui/source/icons/123 CloudDownload.png.meta similarity index 100% rename from Assets/model/ui/source/icons/123 CloudDownload.png.meta rename to Assets/AssetRaw/model/ui/source/icons/123 CloudDownload.png.meta diff --git a/Assets/model/ui/source/icons/124 CloudAdd.png b/Assets/AssetRaw/model/ui/source/icons/124 CloudAdd.png similarity index 100% rename from Assets/model/ui/source/icons/124 CloudAdd.png rename to Assets/AssetRaw/model/ui/source/icons/124 CloudAdd.png diff --git a/Assets/model/ui/source/icons/124 CloudAdd.png.meta b/Assets/AssetRaw/model/ui/source/icons/124 CloudAdd.png.meta similarity index 100% rename from Assets/model/ui/source/icons/124 CloudAdd.png.meta rename to Assets/AssetRaw/model/ui/source/icons/124 CloudAdd.png.meta diff --git a/Assets/model/ui/source/icons/125 CloudDelete.png b/Assets/AssetRaw/model/ui/source/icons/125 CloudDelete.png similarity index 100% rename from Assets/model/ui/source/icons/125 CloudDelete.png rename to Assets/AssetRaw/model/ui/source/icons/125 CloudDelete.png diff --git a/Assets/model/ui/source/icons/125 CloudDelete.png.meta b/Assets/AssetRaw/model/ui/source/icons/125 CloudDelete.png.meta similarity index 100% rename from Assets/model/ui/source/icons/125 CloudDelete.png.meta rename to Assets/AssetRaw/model/ui/source/icons/125 CloudDelete.png.meta diff --git a/Assets/model/ui/source/icons/126 CloudError.png b/Assets/AssetRaw/model/ui/source/icons/126 CloudError.png similarity index 100% rename from Assets/model/ui/source/icons/126 CloudError.png rename to Assets/AssetRaw/model/ui/source/icons/126 CloudError.png diff --git a/Assets/model/ui/source/icons/126 CloudError.png.meta b/Assets/AssetRaw/model/ui/source/icons/126 CloudError.png.meta similarity index 100% rename from Assets/model/ui/source/icons/126 CloudError.png.meta rename to Assets/AssetRaw/model/ui/source/icons/126 CloudError.png.meta diff --git a/Assets/model/ui/source/icons/127 ArrowLeft.png b/Assets/AssetRaw/model/ui/source/icons/127 ArrowLeft.png similarity index 100% rename from Assets/model/ui/source/icons/127 ArrowLeft.png rename to Assets/AssetRaw/model/ui/source/icons/127 ArrowLeft.png diff --git a/Assets/model/ui/source/icons/127 ArrowLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/127 ArrowLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/127 ArrowLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/127 ArrowLeft.png.meta diff --git a/Assets/model/ui/source/icons/128 ArrowLeftDouble.png b/Assets/AssetRaw/model/ui/source/icons/128 ArrowLeftDouble.png similarity index 100% rename from Assets/model/ui/source/icons/128 ArrowLeftDouble.png rename to Assets/AssetRaw/model/ui/source/icons/128 ArrowLeftDouble.png diff --git a/Assets/model/ui/source/icons/128 ArrowLeftDouble.png.meta b/Assets/AssetRaw/model/ui/source/icons/128 ArrowLeftDouble.png.meta similarity index 100% rename from Assets/model/ui/source/icons/128 ArrowLeftDouble.png.meta rename to Assets/AssetRaw/model/ui/source/icons/128 ArrowLeftDouble.png.meta diff --git a/Assets/model/ui/source/icons/129 ArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/129 ArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/129 ArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/129 ArrowRight.png diff --git a/Assets/model/ui/source/icons/129 ArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/129 ArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/129 ArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/129 ArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/130 ArrowRightDouble.png b/Assets/AssetRaw/model/ui/source/icons/130 ArrowRightDouble.png similarity index 100% rename from Assets/model/ui/source/icons/130 ArrowRightDouble.png rename to Assets/AssetRaw/model/ui/source/icons/130 ArrowRightDouble.png diff --git a/Assets/model/ui/source/icons/130 ArrowRightDouble.png.meta b/Assets/AssetRaw/model/ui/source/icons/130 ArrowRightDouble.png.meta similarity index 100% rename from Assets/model/ui/source/icons/130 ArrowRightDouble.png.meta rename to Assets/AssetRaw/model/ui/source/icons/130 ArrowRightDouble.png.meta diff --git a/Assets/model/ui/source/icons/131 Calculator.png b/Assets/AssetRaw/model/ui/source/icons/131 Calculator.png similarity index 100% rename from Assets/model/ui/source/icons/131 Calculator.png rename to Assets/AssetRaw/model/ui/source/icons/131 Calculator.png diff --git a/Assets/model/ui/source/icons/131 Calculator.png.meta b/Assets/AssetRaw/model/ui/source/icons/131 Calculator.png.meta similarity index 100% rename from Assets/model/ui/source/icons/131 Calculator.png.meta rename to Assets/AssetRaw/model/ui/source/icons/131 Calculator.png.meta diff --git a/Assets/model/ui/source/icons/132 CD.png b/Assets/AssetRaw/model/ui/source/icons/132 CD.png similarity index 100% rename from Assets/model/ui/source/icons/132 CD.png rename to Assets/AssetRaw/model/ui/source/icons/132 CD.png diff --git a/Assets/model/ui/source/icons/132 CD.png.meta b/Assets/AssetRaw/model/ui/source/icons/132 CD.png.meta similarity index 100% rename from Assets/model/ui/source/icons/132 CD.png.meta rename to Assets/AssetRaw/model/ui/source/icons/132 CD.png.meta diff --git a/Assets/model/ui/source/icons/133 TriangleUp.png b/Assets/AssetRaw/model/ui/source/icons/133 TriangleUp.png similarity index 100% rename from Assets/model/ui/source/icons/133 TriangleUp.png rename to Assets/AssetRaw/model/ui/source/icons/133 TriangleUp.png diff --git a/Assets/model/ui/source/icons/133 TriangleUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/133 TriangleUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/133 TriangleUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/133 TriangleUp.png.meta diff --git a/Assets/model/ui/source/icons/134 TriangleDown.png b/Assets/AssetRaw/model/ui/source/icons/134 TriangleDown.png similarity index 100% rename from Assets/model/ui/source/icons/134 TriangleDown.png rename to Assets/AssetRaw/model/ui/source/icons/134 TriangleDown.png diff --git a/Assets/model/ui/source/icons/134 TriangleDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/134 TriangleDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/134 TriangleDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/134 TriangleDown.png.meta diff --git a/Assets/model/ui/source/icons/135 TriangleLeft.png b/Assets/AssetRaw/model/ui/source/icons/135 TriangleLeft.png similarity index 100% rename from Assets/model/ui/source/icons/135 TriangleLeft.png rename to Assets/AssetRaw/model/ui/source/icons/135 TriangleLeft.png diff --git a/Assets/model/ui/source/icons/135 TriangleLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/135 TriangleLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/135 TriangleLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/135 TriangleLeft.png.meta diff --git a/Assets/model/ui/source/icons/136 TriangleRight.png b/Assets/AssetRaw/model/ui/source/icons/136 TriangleRight.png similarity index 100% rename from Assets/model/ui/source/icons/136 TriangleRight.png rename to Assets/AssetRaw/model/ui/source/icons/136 TriangleRight.png diff --git a/Assets/model/ui/source/icons/136 TriangleRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/136 TriangleRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/136 TriangleRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/136 TriangleRight.png.meta diff --git a/Assets/model/ui/source/icons/137 CircledBorderTriangleUp.png b/Assets/AssetRaw/model/ui/source/icons/137 CircledBorderTriangleUp.png similarity index 100% rename from Assets/model/ui/source/icons/137 CircledBorderTriangleUp.png rename to Assets/AssetRaw/model/ui/source/icons/137 CircledBorderTriangleUp.png diff --git a/Assets/model/ui/source/icons/137 CircledBorderTriangleUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/137 CircledBorderTriangleUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/137 CircledBorderTriangleUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/137 CircledBorderTriangleUp.png.meta diff --git a/Assets/model/ui/source/icons/138 CircledBorderTriangleDown.png b/Assets/AssetRaw/model/ui/source/icons/138 CircledBorderTriangleDown.png similarity index 100% rename from Assets/model/ui/source/icons/138 CircledBorderTriangleDown.png rename to Assets/AssetRaw/model/ui/source/icons/138 CircledBorderTriangleDown.png diff --git a/Assets/model/ui/source/icons/138 CircledBorderTriangleDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/138 CircledBorderTriangleDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/138 CircledBorderTriangleDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/138 CircledBorderTriangleDown.png.meta diff --git a/Assets/model/ui/source/icons/139 CircledBorderTriangleLeft.png b/Assets/AssetRaw/model/ui/source/icons/139 CircledBorderTriangleLeft.png similarity index 100% rename from Assets/model/ui/source/icons/139 CircledBorderTriangleLeft.png rename to Assets/AssetRaw/model/ui/source/icons/139 CircledBorderTriangleLeft.png diff --git a/Assets/model/ui/source/icons/139 CircledBorderTriangleLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/139 CircledBorderTriangleLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/139 CircledBorderTriangleLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/139 CircledBorderTriangleLeft.png.meta diff --git a/Assets/model/ui/source/icons/140 CircledBorderTriangleRight.png b/Assets/AssetRaw/model/ui/source/icons/140 CircledBorderTriangleRight.png similarity index 100% rename from Assets/model/ui/source/icons/140 CircledBorderTriangleRight.png rename to Assets/AssetRaw/model/ui/source/icons/140 CircledBorderTriangleRight.png diff --git a/Assets/model/ui/source/icons/140 CircledBorderTriangleRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/140 CircledBorderTriangleRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/140 CircledBorderTriangleRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/140 CircledBorderTriangleRight.png.meta diff --git a/Assets/model/ui/source/icons/141 Keyboard.png b/Assets/AssetRaw/model/ui/source/icons/141 Keyboard.png similarity index 100% rename from Assets/model/ui/source/icons/141 Keyboard.png rename to Assets/AssetRaw/model/ui/source/icons/141 Keyboard.png diff --git a/Assets/model/ui/source/icons/141 Keyboard.png.meta b/Assets/AssetRaw/model/ui/source/icons/141 Keyboard.png.meta similarity index 100% rename from Assets/model/ui/source/icons/141 Keyboard.png.meta rename to Assets/AssetRaw/model/ui/source/icons/141 Keyboard.png.meta diff --git a/Assets/model/ui/source/icons/142 Mouse.png b/Assets/AssetRaw/model/ui/source/icons/142 Mouse.png similarity index 100% rename from Assets/model/ui/source/icons/142 Mouse.png rename to Assets/AssetRaw/model/ui/source/icons/142 Mouse.png diff --git a/Assets/model/ui/source/icons/142 Mouse.png.meta b/Assets/AssetRaw/model/ui/source/icons/142 Mouse.png.meta similarity index 100% rename from Assets/model/ui/source/icons/142 Mouse.png.meta rename to Assets/AssetRaw/model/ui/source/icons/142 Mouse.png.meta diff --git a/Assets/model/ui/source/icons/143 Attention.png b/Assets/AssetRaw/model/ui/source/icons/143 Attention.png similarity index 100% rename from Assets/model/ui/source/icons/143 Attention.png rename to Assets/AssetRaw/model/ui/source/icons/143 Attention.png diff --git a/Assets/model/ui/source/icons/143 Attention.png.meta b/Assets/AssetRaw/model/ui/source/icons/143 Attention.png.meta similarity index 100% rename from Assets/model/ui/source/icons/143 Attention.png.meta rename to Assets/AssetRaw/model/ui/source/icons/143 Attention.png.meta diff --git a/Assets/model/ui/source/icons/144 Forbidden.png b/Assets/AssetRaw/model/ui/source/icons/144 Forbidden.png similarity index 100% rename from Assets/model/ui/source/icons/144 Forbidden.png rename to Assets/AssetRaw/model/ui/source/icons/144 Forbidden.png diff --git a/Assets/model/ui/source/icons/144 Forbidden.png.meta b/Assets/AssetRaw/model/ui/source/icons/144 Forbidden.png.meta similarity index 100% rename from Assets/model/ui/source/icons/144 Forbidden.png.meta rename to Assets/AssetRaw/model/ui/source/icons/144 Forbidden.png.meta diff --git a/Assets/model/ui/source/icons/146 RoundedActionLeft.png b/Assets/AssetRaw/model/ui/source/icons/146 RoundedActionLeft.png similarity index 100% rename from Assets/model/ui/source/icons/146 RoundedActionLeft.png rename to Assets/AssetRaw/model/ui/source/icons/146 RoundedActionLeft.png diff --git a/Assets/model/ui/source/icons/146 RoundedActionLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/146 RoundedActionLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/146 RoundedActionLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/146 RoundedActionLeft.png.meta diff --git a/Assets/model/ui/source/icons/147 RoundedActionRight.png b/Assets/AssetRaw/model/ui/source/icons/147 RoundedActionRight.png similarity index 100% rename from Assets/model/ui/source/icons/147 RoundedActionRight.png rename to Assets/AssetRaw/model/ui/source/icons/147 RoundedActionRight.png diff --git a/Assets/model/ui/source/icons/147 RoundedActionRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/147 RoundedActionRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/147 RoundedActionRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/147 RoundedActionRight.png.meta diff --git a/Assets/model/ui/source/icons/148 RoundedActionLeft2.png b/Assets/AssetRaw/model/ui/source/icons/148 RoundedActionLeft2.png similarity index 100% rename from Assets/model/ui/source/icons/148 RoundedActionLeft2.png rename to Assets/AssetRaw/model/ui/source/icons/148 RoundedActionLeft2.png diff --git a/Assets/model/ui/source/icons/148 RoundedActionLeft2.png.meta b/Assets/AssetRaw/model/ui/source/icons/148 RoundedActionLeft2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/148 RoundedActionLeft2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/148 RoundedActionLeft2.png.meta diff --git a/Assets/model/ui/source/icons/149 RoundedActionRight2.png b/Assets/AssetRaw/model/ui/source/icons/149 RoundedActionRight2.png similarity index 100% rename from Assets/model/ui/source/icons/149 RoundedActionRight2.png rename to Assets/AssetRaw/model/ui/source/icons/149 RoundedActionRight2.png diff --git a/Assets/model/ui/source/icons/149 RoundedActionRight2.png.meta b/Assets/AssetRaw/model/ui/source/icons/149 RoundedActionRight2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/149 RoundedActionRight2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/149 RoundedActionRight2.png.meta diff --git a/Assets/model/ui/source/icons/150 Glasses.png b/Assets/AssetRaw/model/ui/source/icons/150 Glasses.png similarity index 100% rename from Assets/model/ui/source/icons/150 Glasses.png rename to Assets/AssetRaw/model/ui/source/icons/150 Glasses.png diff --git a/Assets/model/ui/source/icons/150 Glasses.png.meta b/Assets/AssetRaw/model/ui/source/icons/150 Glasses.png.meta similarity index 100% rename from Assets/model/ui/source/icons/150 Glasses.png.meta rename to Assets/AssetRaw/model/ui/source/icons/150 Glasses.png.meta diff --git a/Assets/model/ui/source/icons/152 VolumeDown.png b/Assets/AssetRaw/model/ui/source/icons/152 VolumeDown.png similarity index 100% rename from Assets/model/ui/source/icons/152 VolumeDown.png rename to Assets/AssetRaw/model/ui/source/icons/152 VolumeDown.png diff --git a/Assets/model/ui/source/icons/152 VolumeDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/152 VolumeDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/152 VolumeDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/152 VolumeDown.png.meta diff --git a/Assets/model/ui/source/icons/153 VolumeUp.png b/Assets/AssetRaw/model/ui/source/icons/153 VolumeUp.png similarity index 100% rename from Assets/model/ui/source/icons/153 VolumeUp.png rename to Assets/AssetRaw/model/ui/source/icons/153 VolumeUp.png diff --git a/Assets/model/ui/source/icons/153 VolumeUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/153 VolumeUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/153 VolumeUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/153 VolumeUp.png.meta diff --git a/Assets/model/ui/source/icons/154 ShoppingCart.png b/Assets/AssetRaw/model/ui/source/icons/154 ShoppingCart.png similarity index 100% rename from Assets/model/ui/source/icons/154 ShoppingCart.png rename to Assets/AssetRaw/model/ui/source/icons/154 ShoppingCart.png diff --git a/Assets/model/ui/source/icons/154 ShoppingCart.png.meta b/Assets/AssetRaw/model/ui/source/icons/154 ShoppingCart.png.meta similarity index 100% rename from Assets/model/ui/source/icons/154 ShoppingCart.png.meta rename to Assets/AssetRaw/model/ui/source/icons/154 ShoppingCart.png.meta diff --git a/Assets/model/ui/source/icons/155 ShoppingCart2.png b/Assets/AssetRaw/model/ui/source/icons/155 ShoppingCart2.png similarity index 100% rename from Assets/model/ui/source/icons/155 ShoppingCart2.png rename to Assets/AssetRaw/model/ui/source/icons/155 ShoppingCart2.png diff --git a/Assets/model/ui/source/icons/155 ShoppingCart2.png.meta b/Assets/AssetRaw/model/ui/source/icons/155 ShoppingCart2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/155 ShoppingCart2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/155 ShoppingCart2.png.meta diff --git a/Assets/model/ui/source/icons/156 Library.png b/Assets/AssetRaw/model/ui/source/icons/156 Library.png similarity index 100% rename from Assets/model/ui/source/icons/156 Library.png rename to Assets/AssetRaw/model/ui/source/icons/156 Library.png diff --git a/Assets/model/ui/source/icons/156 Library.png.meta b/Assets/AssetRaw/model/ui/source/icons/156 Library.png.meta similarity index 100% rename from Assets/model/ui/source/icons/156 Library.png.meta rename to Assets/AssetRaw/model/ui/source/icons/156 Library.png.meta diff --git a/Assets/model/ui/source/icons/157 Burn.png b/Assets/AssetRaw/model/ui/source/icons/157 Burn.png similarity index 100% rename from Assets/model/ui/source/icons/157 Burn.png rename to Assets/AssetRaw/model/ui/source/icons/157 Burn.png diff --git a/Assets/model/ui/source/icons/157 Burn.png.meta b/Assets/AssetRaw/model/ui/source/icons/157 Burn.png.meta similarity index 100% rename from Assets/model/ui/source/icons/157 Burn.png.meta rename to Assets/AssetRaw/model/ui/source/icons/157 Burn.png.meta diff --git a/Assets/model/ui/source/icons/158 Keyhole.png b/Assets/AssetRaw/model/ui/source/icons/158 Keyhole.png similarity index 100% rename from Assets/model/ui/source/icons/158 Keyhole.png rename to Assets/AssetRaw/model/ui/source/icons/158 Keyhole.png diff --git a/Assets/model/ui/source/icons/158 Keyhole.png.meta b/Assets/AssetRaw/model/ui/source/icons/158 Keyhole.png.meta similarity index 100% rename from Assets/model/ui/source/icons/158 Keyhole.png.meta rename to Assets/AssetRaw/model/ui/source/icons/158 Keyhole.png.meta diff --git a/Assets/model/ui/source/icons/159 Key.png b/Assets/AssetRaw/model/ui/source/icons/159 Key.png similarity index 100% rename from Assets/model/ui/source/icons/159 Key.png rename to Assets/AssetRaw/model/ui/source/icons/159 Key.png diff --git a/Assets/model/ui/source/icons/159 Key.png.meta b/Assets/AssetRaw/model/ui/source/icons/159 Key.png.meta similarity index 100% rename from Assets/model/ui/source/icons/159 Key.png.meta rename to Assets/AssetRaw/model/ui/source/icons/159 Key.png.meta diff --git a/Assets/model/ui/source/icons/160 Desktop.png b/Assets/AssetRaw/model/ui/source/icons/160 Desktop.png similarity index 100% rename from Assets/model/ui/source/icons/160 Desktop.png rename to Assets/AssetRaw/model/ui/source/icons/160 Desktop.png diff --git a/Assets/model/ui/source/icons/160 Desktop.png.meta b/Assets/AssetRaw/model/ui/source/icons/160 Desktop.png.meta similarity index 100% rename from Assets/model/ui/source/icons/160 Desktop.png.meta rename to Assets/AssetRaw/model/ui/source/icons/160 Desktop.png.meta diff --git a/Assets/model/ui/source/icons/161 Desktop2.png b/Assets/AssetRaw/model/ui/source/icons/161 Desktop2.png similarity index 100% rename from Assets/model/ui/source/icons/161 Desktop2.png rename to Assets/AssetRaw/model/ui/source/icons/161 Desktop2.png diff --git a/Assets/model/ui/source/icons/161 Desktop2.png.meta b/Assets/AssetRaw/model/ui/source/icons/161 Desktop2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/161 Desktop2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/161 Desktop2.png.meta diff --git a/Assets/model/ui/source/icons/162 Guidepost.png b/Assets/AssetRaw/model/ui/source/icons/162 Guidepost.png similarity index 100% rename from Assets/model/ui/source/icons/162 Guidepost.png rename to Assets/AssetRaw/model/ui/source/icons/162 Guidepost.png diff --git a/Assets/model/ui/source/icons/162 Guidepost.png.meta b/Assets/AssetRaw/model/ui/source/icons/162 Guidepost.png.meta similarity index 100% rename from Assets/model/ui/source/icons/162 Guidepost.png.meta rename to Assets/AssetRaw/model/ui/source/icons/162 Guidepost.png.meta diff --git a/Assets/model/ui/source/icons/163 Grid3.png b/Assets/AssetRaw/model/ui/source/icons/163 Grid3.png similarity index 100% rename from Assets/model/ui/source/icons/163 Grid3.png rename to Assets/AssetRaw/model/ui/source/icons/163 Grid3.png diff --git a/Assets/model/ui/source/icons/163 Grid3.png.meta b/Assets/AssetRaw/model/ui/source/icons/163 Grid3.png.meta similarity index 100% rename from Assets/model/ui/source/icons/163 Grid3.png.meta rename to Assets/AssetRaw/model/ui/source/icons/163 Grid3.png.meta diff --git a/Assets/model/ui/source/icons/164 QuestionMark.png b/Assets/AssetRaw/model/ui/source/icons/164 QuestionMark.png similarity index 100% rename from Assets/model/ui/source/icons/164 QuestionMark.png rename to Assets/AssetRaw/model/ui/source/icons/164 QuestionMark.png diff --git a/Assets/model/ui/source/icons/164 QuestionMark.png.meta b/Assets/AssetRaw/model/ui/source/icons/164 QuestionMark.png.meta similarity index 100% rename from Assets/model/ui/source/icons/164 QuestionMark.png.meta rename to Assets/AssetRaw/model/ui/source/icons/164 QuestionMark.png.meta diff --git a/Assets/model/ui/source/icons/165 ExclamationMark.png b/Assets/AssetRaw/model/ui/source/icons/165 ExclamationMark.png similarity index 100% rename from Assets/model/ui/source/icons/165 ExclamationMark.png rename to Assets/AssetRaw/model/ui/source/icons/165 ExclamationMark.png diff --git a/Assets/model/ui/source/icons/165 ExclamationMark.png.meta b/Assets/AssetRaw/model/ui/source/icons/165 ExclamationMark.png.meta similarity index 100% rename from Assets/model/ui/source/icons/165 ExclamationMark.png.meta rename to Assets/AssetRaw/model/ui/source/icons/165 ExclamationMark.png.meta diff --git a/Assets/model/ui/source/icons/166 CircledEject.png b/Assets/AssetRaw/model/ui/source/icons/166 CircledEject.png similarity index 100% rename from Assets/model/ui/source/icons/166 CircledEject.png rename to Assets/AssetRaw/model/ui/source/icons/166 CircledEject.png diff --git a/Assets/model/ui/source/icons/166 CircledEject.png.meta b/Assets/AssetRaw/model/ui/source/icons/166 CircledEject.png.meta similarity index 100% rename from Assets/model/ui/source/icons/166 CircledEject.png.meta rename to Assets/AssetRaw/model/ui/source/icons/166 CircledEject.png.meta diff --git a/Assets/model/ui/source/icons/167 Box.png b/Assets/AssetRaw/model/ui/source/icons/167 Box.png similarity index 100% rename from Assets/model/ui/source/icons/167 Box.png rename to Assets/AssetRaw/model/ui/source/icons/167 Box.png diff --git a/Assets/model/ui/source/icons/167 Box.png.meta b/Assets/AssetRaw/model/ui/source/icons/167 Box.png.meta similarity index 100% rename from Assets/model/ui/source/icons/167 Box.png.meta rename to Assets/AssetRaw/model/ui/source/icons/167 Box.png.meta diff --git a/Assets/model/ui/source/icons/168 BoxFilled.png b/Assets/AssetRaw/model/ui/source/icons/168 BoxFilled.png similarity index 100% rename from Assets/model/ui/source/icons/168 BoxFilled.png rename to Assets/AssetRaw/model/ui/source/icons/168 BoxFilled.png diff --git a/Assets/model/ui/source/icons/168 BoxFilled.png.meta b/Assets/AssetRaw/model/ui/source/icons/168 BoxFilled.png.meta similarity index 100% rename from Assets/model/ui/source/icons/168 BoxFilled.png.meta rename to Assets/AssetRaw/model/ui/source/icons/168 BoxFilled.png.meta diff --git a/Assets/model/ui/source/icons/169 Pricetag.png b/Assets/AssetRaw/model/ui/source/icons/169 Pricetag.png similarity index 100% rename from Assets/model/ui/source/icons/169 Pricetag.png rename to Assets/AssetRaw/model/ui/source/icons/169 Pricetag.png diff --git a/Assets/model/ui/source/icons/169 Pricetag.png.meta b/Assets/AssetRaw/model/ui/source/icons/169 Pricetag.png.meta similarity index 100% rename from Assets/model/ui/source/icons/169 Pricetag.png.meta rename to Assets/AssetRaw/model/ui/source/icons/169 Pricetag.png.meta diff --git a/Assets/model/ui/source/icons/170 CurvedArrowRightDown.png b/Assets/AssetRaw/model/ui/source/icons/170 CurvedArrowRightDown.png similarity index 100% rename from Assets/model/ui/source/icons/170 CurvedArrowRightDown.png rename to Assets/AssetRaw/model/ui/source/icons/170 CurvedArrowRightDown.png diff --git a/Assets/model/ui/source/icons/170 CurvedArrowRightDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/170 CurvedArrowRightDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/170 CurvedArrowRightDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/170 CurvedArrowRightDown.png.meta diff --git a/Assets/model/ui/source/icons/171 CurvedArrowLeftDown.png b/Assets/AssetRaw/model/ui/source/icons/171 CurvedArrowLeftDown.png similarity index 100% rename from Assets/model/ui/source/icons/171 CurvedArrowLeftDown.png rename to Assets/AssetRaw/model/ui/source/icons/171 CurvedArrowLeftDown.png diff --git a/Assets/model/ui/source/icons/171 CurvedArrowLeftDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/171 CurvedArrowLeftDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/171 CurvedArrowLeftDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/171 CurvedArrowLeftDown.png.meta diff --git a/Assets/model/ui/source/icons/172 CurvedArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/172 CurvedArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/172 CurvedArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/172 CurvedArrowRight.png diff --git a/Assets/model/ui/source/icons/172 CurvedArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/172 CurvedArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/172 CurvedArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/172 CurvedArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/173 CurvedArrowLeftUp.png b/Assets/AssetRaw/model/ui/source/icons/173 CurvedArrowLeftUp.png similarity index 100% rename from Assets/model/ui/source/icons/173 CurvedArrowLeftUp.png rename to Assets/AssetRaw/model/ui/source/icons/173 CurvedArrowLeftUp.png diff --git a/Assets/model/ui/source/icons/173 CurvedArrowLeftUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/173 CurvedArrowLeftUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/173 CurvedArrowLeftUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/173 CurvedArrowLeftUp.png.meta diff --git a/Assets/model/ui/source/icons/174 Nuclear.png b/Assets/AssetRaw/model/ui/source/icons/174 Nuclear.png similarity index 100% rename from Assets/model/ui/source/icons/174 Nuclear.png rename to Assets/AssetRaw/model/ui/source/icons/174 Nuclear.png diff --git a/Assets/model/ui/source/icons/174 Nuclear.png.meta b/Assets/AssetRaw/model/ui/source/icons/174 Nuclear.png.meta similarity index 100% rename from Assets/model/ui/source/icons/174 Nuclear.png.meta rename to Assets/AssetRaw/model/ui/source/icons/174 Nuclear.png.meta diff --git a/Assets/model/ui/source/icons/175 Information.png b/Assets/AssetRaw/model/ui/source/icons/175 Information.png similarity index 100% rename from Assets/model/ui/source/icons/175 Information.png rename to Assets/AssetRaw/model/ui/source/icons/175 Information.png diff --git a/Assets/model/ui/source/icons/175 Information.png.meta b/Assets/AssetRaw/model/ui/source/icons/175 Information.png.meta similarity index 100% rename from Assets/model/ui/source/icons/175 Information.png.meta rename to Assets/AssetRaw/model/ui/source/icons/175 Information.png.meta diff --git a/Assets/model/ui/source/icons/176 BookmarkUsed.png b/Assets/AssetRaw/model/ui/source/icons/176 BookmarkUsed.png similarity index 100% rename from Assets/model/ui/source/icons/176 BookmarkUsed.png rename to Assets/AssetRaw/model/ui/source/icons/176 BookmarkUsed.png diff --git a/Assets/model/ui/source/icons/176 BookmarkUsed.png.meta b/Assets/AssetRaw/model/ui/source/icons/176 BookmarkUsed.png.meta similarity index 100% rename from Assets/model/ui/source/icons/176 BookmarkUsed.png.meta rename to Assets/AssetRaw/model/ui/source/icons/176 BookmarkUsed.png.meta diff --git a/Assets/model/ui/source/icons/177 BookmarkUnused.png b/Assets/AssetRaw/model/ui/source/icons/177 BookmarkUnused.png similarity index 100% rename from Assets/model/ui/source/icons/177 BookmarkUnused.png rename to Assets/AssetRaw/model/ui/source/icons/177 BookmarkUnused.png diff --git a/Assets/model/ui/source/icons/177 BookmarkUnused.png.meta b/Assets/AssetRaw/model/ui/source/icons/177 BookmarkUnused.png.meta similarity index 100% rename from Assets/model/ui/source/icons/177 BookmarkUnused.png.meta rename to Assets/AssetRaw/model/ui/source/icons/177 BookmarkUnused.png.meta diff --git a/Assets/model/ui/source/icons/178 Download.png b/Assets/AssetRaw/model/ui/source/icons/178 Download.png similarity index 100% rename from Assets/model/ui/source/icons/178 Download.png rename to Assets/AssetRaw/model/ui/source/icons/178 Download.png diff --git a/Assets/model/ui/source/icons/178 Download.png.meta b/Assets/AssetRaw/model/ui/source/icons/178 Download.png.meta similarity index 100% rename from Assets/model/ui/source/icons/178 Download.png.meta rename to Assets/AssetRaw/model/ui/source/icons/178 Download.png.meta diff --git a/Assets/model/ui/source/icons/179 Upload.png b/Assets/AssetRaw/model/ui/source/icons/179 Upload.png similarity index 100% rename from Assets/model/ui/source/icons/179 Upload.png rename to Assets/AssetRaw/model/ui/source/icons/179 Upload.png diff --git a/Assets/model/ui/source/icons/179 Upload.png.meta b/Assets/AssetRaw/model/ui/source/icons/179 Upload.png.meta similarity index 100% rename from Assets/model/ui/source/icons/179 Upload.png.meta rename to Assets/AssetRaw/model/ui/source/icons/179 Upload.png.meta diff --git a/Assets/model/ui/source/icons/180 Ticket.png b/Assets/AssetRaw/model/ui/source/icons/180 Ticket.png similarity index 100% rename from Assets/model/ui/source/icons/180 Ticket.png rename to Assets/AssetRaw/model/ui/source/icons/180 Ticket.png diff --git a/Assets/model/ui/source/icons/180 Ticket.png.meta b/Assets/AssetRaw/model/ui/source/icons/180 Ticket.png.meta similarity index 100% rename from Assets/model/ui/source/icons/180 Ticket.png.meta rename to Assets/AssetRaw/model/ui/source/icons/180 Ticket.png.meta diff --git a/Assets/model/ui/source/icons/182 FormOvalBorder.png b/Assets/AssetRaw/model/ui/source/icons/182 FormOvalBorder.png similarity index 100% rename from Assets/model/ui/source/icons/182 FormOvalBorder.png rename to Assets/AssetRaw/model/ui/source/icons/182 FormOvalBorder.png diff --git a/Assets/model/ui/source/icons/182 FormOvalBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/182 FormOvalBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/182 FormOvalBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/182 FormOvalBorder.png.meta diff --git a/Assets/model/ui/source/icons/184 FormRectangleBorder.png b/Assets/AssetRaw/model/ui/source/icons/184 FormRectangleBorder.png similarity index 100% rename from Assets/model/ui/source/icons/184 FormRectangleBorder.png rename to Assets/AssetRaw/model/ui/source/icons/184 FormRectangleBorder.png diff --git a/Assets/model/ui/source/icons/184 FormRectangleBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/184 FormRectangleBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/184 FormRectangleBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/184 FormRectangleBorder.png.meta diff --git a/Assets/model/ui/source/icons/185 FormRounded.png b/Assets/AssetRaw/model/ui/source/icons/185 FormRounded.png similarity index 100% rename from Assets/model/ui/source/icons/185 FormRounded.png rename to Assets/AssetRaw/model/ui/source/icons/185 FormRounded.png diff --git a/Assets/model/ui/source/icons/185 FormRounded.png.meta b/Assets/AssetRaw/model/ui/source/icons/185 FormRounded.png.meta similarity index 100% rename from Assets/model/ui/source/icons/185 FormRounded.png.meta rename to Assets/AssetRaw/model/ui/source/icons/185 FormRounded.png.meta diff --git a/Assets/model/ui/source/icons/186 FormRoundedBorder.png b/Assets/AssetRaw/model/ui/source/icons/186 FormRoundedBorder.png similarity index 100% rename from Assets/model/ui/source/icons/186 FormRoundedBorder.png rename to Assets/AssetRaw/model/ui/source/icons/186 FormRoundedBorder.png diff --git a/Assets/model/ui/source/icons/186 FormRoundedBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/186 FormRoundedBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/186 FormRoundedBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/186 FormRoundedBorder.png.meta diff --git a/Assets/model/ui/source/icons/187 FormPolygon.png b/Assets/AssetRaw/model/ui/source/icons/187 FormPolygon.png similarity index 100% rename from Assets/model/ui/source/icons/187 FormPolygon.png rename to Assets/AssetRaw/model/ui/source/icons/187 FormPolygon.png diff --git a/Assets/model/ui/source/icons/187 FormPolygon.png.meta b/Assets/AssetRaw/model/ui/source/icons/187 FormPolygon.png.meta similarity index 100% rename from Assets/model/ui/source/icons/187 FormPolygon.png.meta rename to Assets/AssetRaw/model/ui/source/icons/187 FormPolygon.png.meta diff --git a/Assets/model/ui/source/icons/188 FormPolygonBorder.png b/Assets/AssetRaw/model/ui/source/icons/188 FormPolygonBorder.png similarity index 100% rename from Assets/model/ui/source/icons/188 FormPolygonBorder.png rename to Assets/AssetRaw/model/ui/source/icons/188 FormPolygonBorder.png diff --git a/Assets/model/ui/source/icons/188 FormPolygonBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/188 FormPolygonBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/188 FormPolygonBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/188 FormPolygonBorder.png.meta diff --git a/Assets/model/ui/source/icons/189 FormStar.png b/Assets/AssetRaw/model/ui/source/icons/189 FormStar.png similarity index 100% rename from Assets/model/ui/source/icons/189 FormStar.png rename to Assets/AssetRaw/model/ui/source/icons/189 FormStar.png diff --git a/Assets/model/ui/source/icons/189 FormStar.png.meta b/Assets/AssetRaw/model/ui/source/icons/189 FormStar.png.meta similarity index 100% rename from Assets/model/ui/source/icons/189 FormStar.png.meta rename to Assets/AssetRaw/model/ui/source/icons/189 FormStar.png.meta diff --git a/Assets/model/ui/source/icons/190 FormStarBorder.png b/Assets/AssetRaw/model/ui/source/icons/190 FormStarBorder.png similarity index 100% rename from Assets/model/ui/source/icons/190 FormStarBorder.png rename to Assets/AssetRaw/model/ui/source/icons/190 FormStarBorder.png diff --git a/Assets/model/ui/source/icons/190 FormStarBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/190 FormStarBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/190 FormStarBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/190 FormStarBorder.png.meta diff --git a/Assets/model/ui/source/icons/191 FormTriangle.png b/Assets/AssetRaw/model/ui/source/icons/191 FormTriangle.png similarity index 100% rename from Assets/model/ui/source/icons/191 FormTriangle.png rename to Assets/AssetRaw/model/ui/source/icons/191 FormTriangle.png diff --git a/Assets/model/ui/source/icons/191 FormTriangle.png.meta b/Assets/AssetRaw/model/ui/source/icons/191 FormTriangle.png.meta similarity index 100% rename from Assets/model/ui/source/icons/191 FormTriangle.png.meta rename to Assets/AssetRaw/model/ui/source/icons/191 FormTriangle.png.meta diff --git a/Assets/model/ui/source/icons/192 FormTriangleBorder.png b/Assets/AssetRaw/model/ui/source/icons/192 FormTriangleBorder.png similarity index 100% rename from Assets/model/ui/source/icons/192 FormTriangleBorder.png rename to Assets/AssetRaw/model/ui/source/icons/192 FormTriangleBorder.png diff --git a/Assets/model/ui/source/icons/192 FormTriangleBorder.png.meta b/Assets/AssetRaw/model/ui/source/icons/192 FormTriangleBorder.png.meta similarity index 100% rename from Assets/model/ui/source/icons/192 FormTriangleBorder.png.meta rename to Assets/AssetRaw/model/ui/source/icons/192 FormTriangleBorder.png.meta diff --git a/Assets/model/ui/source/icons/194 LightBulb.png b/Assets/AssetRaw/model/ui/source/icons/194 LightBulb.png similarity index 100% rename from Assets/model/ui/source/icons/194 LightBulb.png rename to Assets/AssetRaw/model/ui/source/icons/194 LightBulb.png diff --git a/Assets/model/ui/source/icons/194 LightBulb.png.meta b/Assets/AssetRaw/model/ui/source/icons/194 LightBulb.png.meta similarity index 100% rename from Assets/model/ui/source/icons/194 LightBulb.png.meta rename to Assets/AssetRaw/model/ui/source/icons/194 LightBulb.png.meta diff --git a/Assets/model/ui/source/icons/195 Raindrop.png b/Assets/AssetRaw/model/ui/source/icons/195 Raindrop.png similarity index 100% rename from Assets/model/ui/source/icons/195 Raindrop.png rename to Assets/AssetRaw/model/ui/source/icons/195 Raindrop.png diff --git a/Assets/model/ui/source/icons/195 Raindrop.png.meta b/Assets/AssetRaw/model/ui/source/icons/195 Raindrop.png.meta similarity index 100% rename from Assets/model/ui/source/icons/195 Raindrop.png.meta rename to Assets/AssetRaw/model/ui/source/icons/195 Raindrop.png.meta diff --git a/Assets/model/ui/source/icons/196 Time.png b/Assets/AssetRaw/model/ui/source/icons/196 Time.png similarity index 100% rename from Assets/model/ui/source/icons/196 Time.png rename to Assets/AssetRaw/model/ui/source/icons/196 Time.png diff --git a/Assets/model/ui/source/icons/196 Time.png.meta b/Assets/AssetRaw/model/ui/source/icons/196 Time.png.meta similarity index 100% rename from Assets/model/ui/source/icons/196 Time.png.meta rename to Assets/AssetRaw/model/ui/source/icons/196 Time.png.meta diff --git a/Assets/model/ui/source/icons/197 Compass.png b/Assets/AssetRaw/model/ui/source/icons/197 Compass.png similarity index 100% rename from Assets/model/ui/source/icons/197 Compass.png rename to Assets/AssetRaw/model/ui/source/icons/197 Compass.png diff --git a/Assets/model/ui/source/icons/197 Compass.png.meta b/Assets/AssetRaw/model/ui/source/icons/197 Compass.png.meta similarity index 100% rename from Assets/model/ui/source/icons/197 Compass.png.meta rename to Assets/AssetRaw/model/ui/source/icons/197 Compass.png.meta diff --git a/Assets/model/ui/source/icons/198 Paperclip.png b/Assets/AssetRaw/model/ui/source/icons/198 Paperclip.png similarity index 100% rename from Assets/model/ui/source/icons/198 Paperclip.png rename to Assets/AssetRaw/model/ui/source/icons/198 Paperclip.png diff --git a/Assets/model/ui/source/icons/198 Paperclip.png.meta b/Assets/AssetRaw/model/ui/source/icons/198 Paperclip.png.meta similarity index 100% rename from Assets/model/ui/source/icons/198 Paperclip.png.meta rename to Assets/AssetRaw/model/ui/source/icons/198 Paperclip.png.meta diff --git a/Assets/model/ui/source/icons/199 CircledPlus.png b/Assets/AssetRaw/model/ui/source/icons/199 CircledPlus.png similarity index 100% rename from Assets/model/ui/source/icons/199 CircledPlus.png rename to Assets/AssetRaw/model/ui/source/icons/199 CircledPlus.png diff --git a/Assets/model/ui/source/icons/199 CircledPlus.png.meta b/Assets/AssetRaw/model/ui/source/icons/199 CircledPlus.png.meta similarity index 100% rename from Assets/model/ui/source/icons/199 CircledPlus.png.meta rename to Assets/AssetRaw/model/ui/source/icons/199 CircledPlus.png.meta diff --git a/Assets/model/ui/source/icons/200 CircledMinus.png b/Assets/AssetRaw/model/ui/source/icons/200 CircledMinus.png similarity index 100% rename from Assets/model/ui/source/icons/200 CircledMinus.png rename to Assets/AssetRaw/model/ui/source/icons/200 CircledMinus.png diff --git a/Assets/model/ui/source/icons/200 CircledMinus.png.meta b/Assets/AssetRaw/model/ui/source/icons/200 CircledMinus.png.meta similarity index 100% rename from Assets/model/ui/source/icons/200 CircledMinus.png.meta rename to Assets/AssetRaw/model/ui/source/icons/200 CircledMinus.png.meta diff --git a/Assets/model/ui/source/icons/201 CircledBackward.png b/Assets/AssetRaw/model/ui/source/icons/201 CircledBackward.png similarity index 100% rename from Assets/model/ui/source/icons/201 CircledBackward.png rename to Assets/AssetRaw/model/ui/source/icons/201 CircledBackward.png diff --git a/Assets/model/ui/source/icons/201 CircledBackward.png.meta b/Assets/AssetRaw/model/ui/source/icons/201 CircledBackward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/201 CircledBackward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/201 CircledBackward.png.meta diff --git a/Assets/model/ui/source/icons/202 CircledForward.png b/Assets/AssetRaw/model/ui/source/icons/202 CircledForward.png similarity index 100% rename from Assets/model/ui/source/icons/202 CircledForward.png rename to Assets/AssetRaw/model/ui/source/icons/202 CircledForward.png diff --git a/Assets/model/ui/source/icons/202 CircledForward.png.meta b/Assets/AssetRaw/model/ui/source/icons/202 CircledForward.png.meta similarity index 100% rename from Assets/model/ui/source/icons/202 CircledForward.png.meta rename to Assets/AssetRaw/model/ui/source/icons/202 CircledForward.png.meta diff --git a/Assets/model/ui/source/icons/203 CircledBack.png b/Assets/AssetRaw/model/ui/source/icons/203 CircledBack.png similarity index 100% rename from Assets/model/ui/source/icons/203 CircledBack.png rename to Assets/AssetRaw/model/ui/source/icons/203 CircledBack.png diff --git a/Assets/model/ui/source/icons/203 CircledBack.png.meta b/Assets/AssetRaw/model/ui/source/icons/203 CircledBack.png.meta similarity index 100% rename from Assets/model/ui/source/icons/203 CircledBack.png.meta rename to Assets/AssetRaw/model/ui/source/icons/203 CircledBack.png.meta diff --git a/Assets/model/ui/source/icons/204 CircledNext.png b/Assets/AssetRaw/model/ui/source/icons/204 CircledNext.png similarity index 100% rename from Assets/model/ui/source/icons/204 CircledNext.png rename to Assets/AssetRaw/model/ui/source/icons/204 CircledNext.png diff --git a/Assets/model/ui/source/icons/204 CircledNext.png.meta b/Assets/AssetRaw/model/ui/source/icons/204 CircledNext.png.meta similarity index 100% rename from Assets/model/ui/source/icons/204 CircledNext.png.meta rename to Assets/AssetRaw/model/ui/source/icons/204 CircledNext.png.meta diff --git a/Assets/model/ui/source/icons/205 CircledPause.png b/Assets/AssetRaw/model/ui/source/icons/205 CircledPause.png similarity index 100% rename from Assets/model/ui/source/icons/205 CircledPause.png rename to Assets/AssetRaw/model/ui/source/icons/205 CircledPause.png diff --git a/Assets/model/ui/source/icons/205 CircledPause.png.meta b/Assets/AssetRaw/model/ui/source/icons/205 CircledPause.png.meta similarity index 100% rename from Assets/model/ui/source/icons/205 CircledPause.png.meta rename to Assets/AssetRaw/model/ui/source/icons/205 CircledPause.png.meta diff --git a/Assets/model/ui/source/icons/206 CircledStop.png b/Assets/AssetRaw/model/ui/source/icons/206 CircledStop.png similarity index 100% rename from Assets/model/ui/source/icons/206 CircledStop.png rename to Assets/AssetRaw/model/ui/source/icons/206 CircledStop.png diff --git a/Assets/model/ui/source/icons/206 CircledStop.png.meta b/Assets/AssetRaw/model/ui/source/icons/206 CircledStop.png.meta similarity index 100% rename from Assets/model/ui/source/icons/206 CircledStop.png.meta rename to Assets/AssetRaw/model/ui/source/icons/206 CircledStop.png.meta diff --git a/Assets/model/ui/source/icons/207 CircledBackward2.png b/Assets/AssetRaw/model/ui/source/icons/207 CircledBackward2.png similarity index 100% rename from Assets/model/ui/source/icons/207 CircledBackward2.png rename to Assets/AssetRaw/model/ui/source/icons/207 CircledBackward2.png diff --git a/Assets/model/ui/source/icons/207 CircledBackward2.png.meta b/Assets/AssetRaw/model/ui/source/icons/207 CircledBackward2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/207 CircledBackward2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/207 CircledBackward2.png.meta diff --git a/Assets/model/ui/source/icons/208 CircledForward2.png b/Assets/AssetRaw/model/ui/source/icons/208 CircledForward2.png similarity index 100% rename from Assets/model/ui/source/icons/208 CircledForward2.png rename to Assets/AssetRaw/model/ui/source/icons/208 CircledForward2.png diff --git a/Assets/model/ui/source/icons/208 CircledForward2.png.meta b/Assets/AssetRaw/model/ui/source/icons/208 CircledForward2.png.meta similarity index 100% rename from Assets/model/ui/source/icons/208 CircledForward2.png.meta rename to Assets/AssetRaw/model/ui/source/icons/208 CircledForward2.png.meta diff --git a/Assets/model/ui/source/icons/209 CircledBorderArrowLeft.png b/Assets/AssetRaw/model/ui/source/icons/209 CircledBorderArrowLeft.png similarity index 100% rename from Assets/model/ui/source/icons/209 CircledBorderArrowLeft.png rename to Assets/AssetRaw/model/ui/source/icons/209 CircledBorderArrowLeft.png diff --git a/Assets/model/ui/source/icons/209 CircledBorderArrowLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/209 CircledBorderArrowLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/209 CircledBorderArrowLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/209 CircledBorderArrowLeft.png.meta diff --git a/Assets/model/ui/source/icons/210 CircledBorderArrowRight.png b/Assets/AssetRaw/model/ui/source/icons/210 CircledBorderArrowRight.png similarity index 100% rename from Assets/model/ui/source/icons/210 CircledBorderArrowRight.png rename to Assets/AssetRaw/model/ui/source/icons/210 CircledBorderArrowRight.png diff --git a/Assets/model/ui/source/icons/210 CircledBorderArrowRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/210 CircledBorderArrowRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/210 CircledBorderArrowRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/210 CircledBorderArrowRight.png.meta diff --git a/Assets/model/ui/source/icons/211 CircledBorderArrowUp.png b/Assets/AssetRaw/model/ui/source/icons/211 CircledBorderArrowUp.png similarity index 100% rename from Assets/model/ui/source/icons/211 CircledBorderArrowUp.png rename to Assets/AssetRaw/model/ui/source/icons/211 CircledBorderArrowUp.png diff --git a/Assets/model/ui/source/icons/211 CircledBorderArrowUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/211 CircledBorderArrowUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/211 CircledBorderArrowUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/211 CircledBorderArrowUp.png.meta diff --git a/Assets/model/ui/source/icons/212 CircledBorderArrowDown.png b/Assets/AssetRaw/model/ui/source/icons/212 CircledBorderArrowDown.png similarity index 100% rename from Assets/model/ui/source/icons/212 CircledBorderArrowDown.png rename to Assets/AssetRaw/model/ui/source/icons/212 CircledBorderArrowDown.png diff --git a/Assets/model/ui/source/icons/212 CircledBorderArrowDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/212 CircledBorderArrowDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/212 CircledBorderArrowDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/212 CircledBorderArrowDown.png.meta diff --git a/Assets/model/ui/source/icons/213 CircledBorderTriangleLeft.png b/Assets/AssetRaw/model/ui/source/icons/213 CircledBorderTriangleLeft.png similarity index 100% rename from Assets/model/ui/source/icons/213 CircledBorderTriangleLeft.png rename to Assets/AssetRaw/model/ui/source/icons/213 CircledBorderTriangleLeft.png diff --git a/Assets/model/ui/source/icons/213 CircledBorderTriangleLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/213 CircledBorderTriangleLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/213 CircledBorderTriangleLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/213 CircledBorderTriangleLeft.png.meta diff --git a/Assets/model/ui/source/icons/214 CircledBorderTriangleRight.png b/Assets/AssetRaw/model/ui/source/icons/214 CircledBorderTriangleRight.png similarity index 100% rename from Assets/model/ui/source/icons/214 CircledBorderTriangleRight.png rename to Assets/AssetRaw/model/ui/source/icons/214 CircledBorderTriangleRight.png diff --git a/Assets/model/ui/source/icons/214 CircledBorderTriangleRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/214 CircledBorderTriangleRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/214 CircledBorderTriangleRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/214 CircledBorderTriangleRight.png.meta diff --git a/Assets/model/ui/source/icons/215 CircledBorderTriangleUp.png b/Assets/AssetRaw/model/ui/source/icons/215 CircledBorderTriangleUp.png similarity index 100% rename from Assets/model/ui/source/icons/215 CircledBorderTriangleUp.png rename to Assets/AssetRaw/model/ui/source/icons/215 CircledBorderTriangleUp.png diff --git a/Assets/model/ui/source/icons/215 CircledBorderTriangleUp.png.meta b/Assets/AssetRaw/model/ui/source/icons/215 CircledBorderTriangleUp.png.meta similarity index 100% rename from Assets/model/ui/source/icons/215 CircledBorderTriangleUp.png.meta rename to Assets/AssetRaw/model/ui/source/icons/215 CircledBorderTriangleUp.png.meta diff --git a/Assets/model/ui/source/icons/216 CircledBorderTriangleDown.png b/Assets/AssetRaw/model/ui/source/icons/216 CircledBorderTriangleDown.png similarity index 100% rename from Assets/model/ui/source/icons/216 CircledBorderTriangleDown.png rename to Assets/AssetRaw/model/ui/source/icons/216 CircledBorderTriangleDown.png diff --git a/Assets/model/ui/source/icons/216 CircledBorderTriangleDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/216 CircledBorderTriangleDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/216 CircledBorderTriangleDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/216 CircledBorderTriangleDown.png.meta diff --git a/Assets/model/ui/source/icons/217 CircledRedo.png b/Assets/AssetRaw/model/ui/source/icons/217 CircledRedo.png similarity index 100% rename from Assets/model/ui/source/icons/217 CircledRedo.png rename to Assets/AssetRaw/model/ui/source/icons/217 CircledRedo.png diff --git a/Assets/model/ui/source/icons/217 CircledRedo.png.meta b/Assets/AssetRaw/model/ui/source/icons/217 CircledRedo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/217 CircledRedo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/217 CircledRedo.png.meta diff --git a/Assets/model/ui/source/icons/218 CircledUndo.png b/Assets/AssetRaw/model/ui/source/icons/218 CircledUndo.png similarity index 100% rename from Assets/model/ui/source/icons/218 CircledUndo.png rename to Assets/AssetRaw/model/ui/source/icons/218 CircledUndo.png diff --git a/Assets/model/ui/source/icons/218 CircledUndo.png.meta b/Assets/AssetRaw/model/ui/source/icons/218 CircledUndo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/218 CircledUndo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/218 CircledUndo.png.meta diff --git a/Assets/model/ui/source/icons/219 CircledSync.png b/Assets/AssetRaw/model/ui/source/icons/219 CircledSync.png similarity index 100% rename from Assets/model/ui/source/icons/219 CircledSync.png rename to Assets/AssetRaw/model/ui/source/icons/219 CircledSync.png diff --git a/Assets/model/ui/source/icons/219 CircledSync.png.meta b/Assets/AssetRaw/model/ui/source/icons/219 CircledSync.png.meta similarity index 100% rename from Assets/model/ui/source/icons/219 CircledSync.png.meta rename to Assets/AssetRaw/model/ui/source/icons/219 CircledSync.png.meta diff --git a/Assets/model/ui/source/icons/220 ArrowTurnRight.png b/Assets/AssetRaw/model/ui/source/icons/220 ArrowTurnRight.png similarity index 100% rename from Assets/model/ui/source/icons/220 ArrowTurnRight.png rename to Assets/AssetRaw/model/ui/source/icons/220 ArrowTurnRight.png diff --git a/Assets/model/ui/source/icons/220 ArrowTurnRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/220 ArrowTurnRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/220 ArrowTurnRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/220 ArrowTurnRight.png.meta diff --git a/Assets/model/ui/source/icons/221 ArrowTurnLeft.png b/Assets/AssetRaw/model/ui/source/icons/221 ArrowTurnLeft.png similarity index 100% rename from Assets/model/ui/source/icons/221 ArrowTurnLeft.png rename to Assets/AssetRaw/model/ui/source/icons/221 ArrowTurnLeft.png diff --git a/Assets/model/ui/source/icons/221 ArrowTurnLeft.png.meta b/Assets/AssetRaw/model/ui/source/icons/221 ArrowTurnLeft.png.meta similarity index 100% rename from Assets/model/ui/source/icons/221 ArrowTurnLeft.png.meta rename to Assets/AssetRaw/model/ui/source/icons/221 ArrowTurnLeft.png.meta diff --git a/Assets/model/ui/source/icons/222 ArrowTurnRightDown.png b/Assets/AssetRaw/model/ui/source/icons/222 ArrowTurnRightDown.png similarity index 100% rename from Assets/model/ui/source/icons/222 ArrowTurnRightDown.png rename to Assets/AssetRaw/model/ui/source/icons/222 ArrowTurnRightDown.png diff --git a/Assets/model/ui/source/icons/222 ArrowTurnRightDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/222 ArrowTurnRightDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/222 ArrowTurnRightDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/222 ArrowTurnRightDown.png.meta diff --git a/Assets/model/ui/source/icons/223 ArrowTurnLeftDown.png b/Assets/AssetRaw/model/ui/source/icons/223 ArrowTurnLeftDown.png similarity index 100% rename from Assets/model/ui/source/icons/223 ArrowTurnLeftDown.png rename to Assets/AssetRaw/model/ui/source/icons/223 ArrowTurnLeftDown.png diff --git a/Assets/model/ui/source/icons/223 ArrowTurnLeftDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/223 ArrowTurnLeftDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/223 ArrowTurnLeftDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/223 ArrowTurnLeftDown.png.meta diff --git a/Assets/model/ui/source/icons/224 ArrowUpDown.png b/Assets/AssetRaw/model/ui/source/icons/224 ArrowUpDown.png similarity index 100% rename from Assets/model/ui/source/icons/224 ArrowUpDown.png rename to Assets/AssetRaw/model/ui/source/icons/224 ArrowUpDown.png diff --git a/Assets/model/ui/source/icons/224 ArrowUpDown.png.meta b/Assets/AssetRaw/model/ui/source/icons/224 ArrowUpDown.png.meta similarity index 100% rename from Assets/model/ui/source/icons/224 ArrowUpDown.png.meta rename to Assets/AssetRaw/model/ui/source/icons/224 ArrowUpDown.png.meta diff --git a/Assets/model/ui/source/icons/225 ArrowLeftRight.png b/Assets/AssetRaw/model/ui/source/icons/225 ArrowLeftRight.png similarity index 100% rename from Assets/model/ui/source/icons/225 ArrowLeftRight.png rename to Assets/AssetRaw/model/ui/source/icons/225 ArrowLeftRight.png diff --git a/Assets/model/ui/source/icons/225 ArrowLeftRight.png.meta b/Assets/AssetRaw/model/ui/source/icons/225 ArrowLeftRight.png.meta similarity index 100% rename from Assets/model/ui/source/icons/225 ArrowLeftRight.png.meta rename to Assets/AssetRaw/model/ui/source/icons/225 ArrowLeftRight.png.meta diff --git a/Assets/model/ui/source/icons/226 CircledGeo.png b/Assets/AssetRaw/model/ui/source/icons/226 CircledGeo.png similarity index 100% rename from Assets/model/ui/source/icons/226 CircledGeo.png rename to Assets/AssetRaw/model/ui/source/icons/226 CircledGeo.png diff --git a/Assets/model/ui/source/icons/226 CircledGeo.png.meta b/Assets/AssetRaw/model/ui/source/icons/226 CircledGeo.png.meta similarity index 100% rename from Assets/model/ui/source/icons/226 CircledGeo.png.meta rename to Assets/AssetRaw/model/ui/source/icons/226 CircledGeo.png.meta diff --git a/Assets/model/ui/source/icons/227 CircledList.png b/Assets/AssetRaw/model/ui/source/icons/227 CircledList.png similarity index 100% rename from Assets/model/ui/source/icons/227 CircledList.png rename to Assets/AssetRaw/model/ui/source/icons/227 CircledList.png diff --git a/Assets/model/ui/source/icons/227 CircledList.png.meta b/Assets/AssetRaw/model/ui/source/icons/227 CircledList.png.meta similarity index 100% rename from Assets/model/ui/source/icons/227 CircledList.png.meta rename to Assets/AssetRaw/model/ui/source/icons/227 CircledList.png.meta diff --git a/Assets/model/ui/source/icons/228 ArrowTurnMore.png b/Assets/AssetRaw/model/ui/source/icons/228 ArrowTurnMore.png similarity index 100% rename from Assets/model/ui/source/icons/228 ArrowTurnMore.png rename to Assets/AssetRaw/model/ui/source/icons/228 ArrowTurnMore.png diff --git a/Assets/model/ui/source/icons/228 ArrowTurnMore.png.meta b/Assets/AssetRaw/model/ui/source/icons/228 ArrowTurnMore.png.meta similarity index 100% rename from Assets/model/ui/source/icons/228 ArrowTurnMore.png.meta rename to Assets/AssetRaw/model/ui/source/icons/228 ArrowTurnMore.png.meta diff --git a/Assets/model/ui/source/icons/229 DoubleCircle.png b/Assets/AssetRaw/model/ui/source/icons/229 DoubleCircle.png similarity index 100% rename from Assets/model/ui/source/icons/229 DoubleCircle.png rename to Assets/AssetRaw/model/ui/source/icons/229 DoubleCircle.png diff --git a/Assets/model/ui/source/icons/229 DoubleCircle.png.meta b/Assets/AssetRaw/model/ui/source/icons/229 DoubleCircle.png.meta similarity index 100% rename from Assets/model/ui/source/icons/229 DoubleCircle.png.meta rename to Assets/AssetRaw/model/ui/source/icons/229 DoubleCircle.png.meta diff --git a/Assets/model/ui/source/icons/230 HalfCircle.png b/Assets/AssetRaw/model/ui/source/icons/230 HalfCircle.png similarity index 100% rename from Assets/model/ui/source/icons/230 HalfCircle.png rename to Assets/AssetRaw/model/ui/source/icons/230 HalfCircle.png diff --git a/Assets/model/ui/source/icons/230 HalfCircle.png.meta b/Assets/AssetRaw/model/ui/source/icons/230 HalfCircle.png.meta similarity index 100% rename from Assets/model/ui/source/icons/230 HalfCircle.png.meta rename to Assets/AssetRaw/model/ui/source/icons/230 HalfCircle.png.meta diff --git a/Assets/model/ui/source/icons/231 PagesView.png b/Assets/AssetRaw/model/ui/source/icons/231 PagesView.png similarity index 100% rename from Assets/model/ui/source/icons/231 PagesView.png rename to Assets/AssetRaw/model/ui/source/icons/231 PagesView.png diff --git a/Assets/model/ui/source/icons/231 PagesView.png.meta b/Assets/AssetRaw/model/ui/source/icons/231 PagesView.png.meta similarity index 100% rename from Assets/model/ui/source/icons/231 PagesView.png.meta rename to Assets/AssetRaw/model/ui/source/icons/231 PagesView.png.meta diff --git a/Assets/model/ui/source/icons/234 PagesView4.png b/Assets/AssetRaw/model/ui/source/icons/234 PagesView4.png similarity index 100% rename from Assets/model/ui/source/icons/234 PagesView4.png rename to Assets/AssetRaw/model/ui/source/icons/234 PagesView4.png diff --git a/Assets/model/ui/source/icons/234 PagesView4.png.meta b/Assets/AssetRaw/model/ui/source/icons/234 PagesView4.png.meta similarity index 100% rename from Assets/model/ui/source/icons/234 PagesView4.png.meta rename to Assets/AssetRaw/model/ui/source/icons/234 PagesView4.png.meta diff --git a/Assets/model/ui/source/navigation.meta b/Assets/AssetRaw/model/ui/source/navigation.meta similarity index 100% rename from Assets/model/ui/source/navigation.meta rename to Assets/AssetRaw/model/ui/source/navigation.meta diff --git a/Assets/model/ui/source/navigation/LeftArrow-2.psd b/Assets/AssetRaw/model/ui/source/navigation/LeftArrow-2.psd similarity index 100% rename from Assets/model/ui/source/navigation/LeftArrow-2.psd rename to Assets/AssetRaw/model/ui/source/navigation/LeftArrow-2.psd diff --git a/Assets/model/ui/source/navigation/LeftArrow-2.psd.meta b/Assets/AssetRaw/model/ui/source/navigation/LeftArrow-2.psd.meta similarity index 100% rename from Assets/model/ui/source/navigation/LeftArrow-2.psd.meta rename to Assets/AssetRaw/model/ui/source/navigation/LeftArrow-2.psd.meta diff --git a/Assets/model/ui/source/navigation/LeftArrow.psd b/Assets/AssetRaw/model/ui/source/navigation/LeftArrow.psd similarity index 100% rename from Assets/model/ui/source/navigation/LeftArrow.psd rename to Assets/AssetRaw/model/ui/source/navigation/LeftArrow.psd diff --git a/Assets/model/ui/source/navigation/LeftArrow.psd.meta b/Assets/AssetRaw/model/ui/source/navigation/LeftArrow.psd.meta similarity index 100% rename from Assets/model/ui/source/navigation/LeftArrow.psd.meta rename to Assets/AssetRaw/model/ui/source/navigation/LeftArrow.psd.meta diff --git a/Assets/model/ui/source/navigation/RightArrow-2.psd b/Assets/AssetRaw/model/ui/source/navigation/RightArrow-2.psd similarity index 100% rename from Assets/model/ui/source/navigation/RightArrow-2.psd rename to Assets/AssetRaw/model/ui/source/navigation/RightArrow-2.psd diff --git a/Assets/model/ui/source/navigation/RightArrow-2.psd.meta b/Assets/AssetRaw/model/ui/source/navigation/RightArrow-2.psd.meta similarity index 100% rename from Assets/model/ui/source/navigation/RightArrow-2.psd.meta rename to Assets/AssetRaw/model/ui/source/navigation/RightArrow-2.psd.meta diff --git a/Assets/model/ui/source/navigation/RightArrow.psd b/Assets/AssetRaw/model/ui/source/navigation/RightArrow.psd similarity index 100% rename from Assets/model/ui/source/navigation/RightArrow.psd rename to Assets/AssetRaw/model/ui/source/navigation/RightArrow.psd diff --git a/Assets/model/ui/source/navigation/RightArrow.psd.meta b/Assets/AssetRaw/model/ui/source/navigation/RightArrow.psd.meta similarity index 100% rename from Assets/model/ui/source/navigation/RightArrow.psd.meta rename to Assets/AssetRaw/model/ui/source/navigation/RightArrow.psd.meta diff --git a/Assets/model/ui/source/png.meta b/Assets/AssetRaw/model/ui/source/png.meta similarity index 100% rename from Assets/model/ui/source/png.meta rename to Assets/AssetRaw/model/ui/source/png.meta diff --git a/Assets/model/ui/source/png/17.png b/Assets/AssetRaw/model/ui/source/png/17.png similarity index 100% rename from Assets/model/ui/source/png/17.png rename to Assets/AssetRaw/model/ui/source/png/17.png diff --git a/Assets/model/ui/source/png/17.png.meta b/Assets/AssetRaw/model/ui/source/png/17.png.meta similarity index 100% rename from Assets/model/ui/source/png/17.png.meta rename to Assets/AssetRaw/model/ui/source/png/17.png.meta diff --git a/Assets/model/ui/source/png/3模块边框2@2x.png b/Assets/AssetRaw/model/ui/source/png/3模块边框2@2x.png similarity index 100% rename from Assets/model/ui/source/png/3模块边框2@2x.png rename to Assets/AssetRaw/model/ui/source/png/3模块边框2@2x.png diff --git a/Assets/model/ui/source/png/3模块边框2@2x.png.meta b/Assets/AssetRaw/model/ui/source/png/3模块边框2@2x.png.meta similarity index 100% rename from Assets/model/ui/source/png/3模块边框2@2x.png.meta rename to Assets/AssetRaw/model/ui/source/png/3模块边框2@2x.png.meta diff --git a/Assets/model/ui/source/png/5-边框-左下.png b/Assets/AssetRaw/model/ui/source/png/5-边框-左下.png similarity index 100% rename from Assets/model/ui/source/png/5-边框-左下.png rename to Assets/AssetRaw/model/ui/source/png/5-边框-左下.png diff --git a/Assets/model/ui/source/png/5-边框-左下.png.meta b/Assets/AssetRaw/model/ui/source/png/5-边框-左下.png.meta similarity index 100% rename from Assets/model/ui/source/png/5-边框-左下.png.meta rename to Assets/AssetRaw/model/ui/source/png/5-边框-左下.png.meta diff --git a/Assets/model/ui/source/png/50.png b/Assets/AssetRaw/model/ui/source/png/50.png similarity index 100% rename from Assets/model/ui/source/png/50.png rename to Assets/AssetRaw/model/ui/source/png/50.png diff --git a/Assets/model/ui/source/png/50.png.meta b/Assets/AssetRaw/model/ui/source/png/50.png.meta similarity index 100% rename from Assets/model/ui/source/png/50.png.meta rename to Assets/AssetRaw/model/ui/source/png/50.png.meta diff --git a/Assets/model/ui/source/png/5组件框3.png b/Assets/AssetRaw/model/ui/source/png/5组件框3.png similarity index 100% rename from Assets/model/ui/source/png/5组件框3.png rename to Assets/AssetRaw/model/ui/source/png/5组件框3.png diff --git a/Assets/model/ui/source/png/5组件框3.png.meta b/Assets/AssetRaw/model/ui/source/png/5组件框3.png.meta similarity index 100% rename from Assets/model/ui/source/png/5组件框3.png.meta rename to Assets/AssetRaw/model/ui/source/png/5组件框3.png.meta diff --git a/Assets/model/ui/source/png/6-圆角1.png b/Assets/AssetRaw/model/ui/source/png/6-圆角1.png similarity index 100% rename from Assets/model/ui/source/png/6-圆角1.png rename to Assets/AssetRaw/model/ui/source/png/6-圆角1.png diff --git a/Assets/model/ui/source/png/6-圆角1.png.meta b/Assets/AssetRaw/model/ui/source/png/6-圆角1.png.meta similarity index 100% rename from Assets/model/ui/source/png/6-圆角1.png.meta rename to Assets/AssetRaw/model/ui/source/png/6-圆角1.png.meta diff --git a/Assets/model/ui/source/png/6指标卡1文字背景.png b/Assets/AssetRaw/model/ui/source/png/6指标卡1文字背景.png similarity index 100% rename from Assets/model/ui/source/png/6指标卡1文字背景.png rename to Assets/AssetRaw/model/ui/source/png/6指标卡1文字背景.png diff --git a/Assets/model/ui/source/png/6指标卡1文字背景.png.meta b/Assets/AssetRaw/model/ui/source/png/6指标卡1文字背景.png.meta similarity index 100% rename from Assets/model/ui/source/png/6指标卡1文字背景.png.meta rename to Assets/AssetRaw/model/ui/source/png/6指标卡1文字背景.png.meta diff --git a/Assets/model/ui/source/png/7-下左一.png b/Assets/AssetRaw/model/ui/source/png/7-下左一.png similarity index 100% rename from Assets/model/ui/source/png/7-下左一.png rename to Assets/AssetRaw/model/ui/source/png/7-下左一.png diff --git a/Assets/model/ui/source/png/7-下左一.png.meta b/Assets/AssetRaw/model/ui/source/png/7-下左一.png.meta similarity index 100% rename from Assets/model/ui/source/png/7-下左一.png.meta rename to Assets/AssetRaw/model/ui/source/png/7-下左一.png.meta diff --git a/Assets/model/ui/source/png/8-圆角矩形2.png b/Assets/AssetRaw/model/ui/source/png/8-圆角矩形2.png similarity index 100% rename from Assets/model/ui/source/png/8-圆角矩形2.png rename to Assets/AssetRaw/model/ui/source/png/8-圆角矩形2.png diff --git a/Assets/model/ui/source/png/8-圆角矩形2.png.meta b/Assets/AssetRaw/model/ui/source/png/8-圆角矩形2.png.meta similarity index 100% rename from Assets/model/ui/source/png/8-圆角矩形2.png.meta rename to Assets/AssetRaw/model/ui/source/png/8-圆角矩形2.png.meta diff --git a/Assets/model/ui/source/png/90.jpg b/Assets/AssetRaw/model/ui/source/png/90.jpg similarity index 100% rename from Assets/model/ui/source/png/90.jpg rename to Assets/AssetRaw/model/ui/source/png/90.jpg diff --git a/Assets/model/ui/source/png/90.jpg.meta b/Assets/AssetRaw/model/ui/source/png/90.jpg.meta similarity index 100% rename from Assets/model/ui/source/png/90.jpg.meta rename to Assets/AssetRaw/model/ui/source/png/90.jpg.meta diff --git a/Assets/model/ui/source/png/VCG211532188472.png b/Assets/AssetRaw/model/ui/source/png/VCG211532188472.png similarity index 100% rename from Assets/model/ui/source/png/VCG211532188472.png rename to Assets/AssetRaw/model/ui/source/png/VCG211532188472.png diff --git a/Assets/model/ui/source/png/VCG211532188472.png.meta b/Assets/AssetRaw/model/ui/source/png/VCG211532188472.png.meta similarity index 100% rename from Assets/model/ui/source/png/VCG211532188472.png.meta rename to Assets/AssetRaw/model/ui/source/png/VCG211532188472.png.meta diff --git a/Assets/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png b/Assets/AssetRaw/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png similarity index 100% rename from Assets/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png rename to Assets/AssetRaw/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png diff --git a/Assets/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png.meta b/Assets/AssetRaw/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png.meta similarity index 100% rename from Assets/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png.meta rename to Assets/AssetRaw/model/ui/source/png/e60ca967c055544a4edeb661a32a33f6f00b7a8e.png.meta diff --git a/Assets/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg b/Assets/AssetRaw/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg similarity index 100% rename from Assets/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg rename to Assets/AssetRaw/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg diff --git a/Assets/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg.meta b/Assets/AssetRaw/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg.meta similarity index 100% rename from Assets/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg.meta rename to Assets/AssetRaw/model/ui/source/png/eb1541c698cbf74afbb1fe5ac5b3767d706cfcc4.jpeg.meta diff --git a/Assets/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png b/Assets/AssetRaw/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png similarity index 100% rename from Assets/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png rename to Assets/AssetRaw/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png diff --git a/Assets/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png.meta b/Assets/AssetRaw/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png.meta similarity index 100% rename from Assets/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png.meta rename to Assets/AssetRaw/model/ui/source/png/f1ad27f7db7560ad0f7c3a1cfe320feff4a709a9_2_690x46.png.meta diff --git a/Assets/model/ui/source/png/jzxz1.png b/Assets/AssetRaw/model/ui/source/png/jzxz1.png similarity index 100% rename from Assets/model/ui/source/png/jzxz1.png rename to Assets/AssetRaw/model/ui/source/png/jzxz1.png diff --git a/Assets/model/ui/source/png/jzxz1.png.meta b/Assets/AssetRaw/model/ui/source/png/jzxz1.png.meta similarity index 100% rename from Assets/model/ui/source/png/jzxz1.png.meta rename to Assets/AssetRaw/model/ui/source/png/jzxz1.png.meta diff --git a/Assets/model/ui/source/png/jzxz2.png b/Assets/AssetRaw/model/ui/source/png/jzxz2.png similarity index 100% rename from Assets/model/ui/source/png/jzxz2.png rename to Assets/AssetRaw/model/ui/source/png/jzxz2.png diff --git a/Assets/model/ui/source/png/jzxz2.png.meta b/Assets/AssetRaw/model/ui/source/png/jzxz2.png.meta similarity index 100% rename from Assets/model/ui/source/png/jzxz2.png.meta rename to Assets/AssetRaw/model/ui/source/png/jzxz2.png.meta diff --git a/Assets/model/ui/source/png/logo.48cac4bb.png b/Assets/AssetRaw/model/ui/source/png/logo.48cac4bb.png similarity index 100% rename from Assets/model/ui/source/png/logo.48cac4bb.png rename to Assets/AssetRaw/model/ui/source/png/logo.48cac4bb.png diff --git a/Assets/model/ui/source/png/logo.48cac4bb.png.meta b/Assets/AssetRaw/model/ui/source/png/logo.48cac4bb.png.meta similarity index 100% rename from Assets/model/ui/source/png/logo.48cac4bb.png.meta rename to Assets/AssetRaw/model/ui/source/png/logo.48cac4bb.png.meta diff --git a/Assets/model/ui/source/png/tab-未选中.png b/Assets/AssetRaw/model/ui/source/png/tab-未选中.png similarity index 100% rename from Assets/model/ui/source/png/tab-未选中.png rename to Assets/AssetRaw/model/ui/source/png/tab-未选中.png diff --git a/Assets/model/ui/source/png/tab-未选中.png.meta b/Assets/AssetRaw/model/ui/source/png/tab-未选中.png.meta similarity index 100% rename from Assets/model/ui/source/png/tab-未选中.png.meta rename to Assets/AssetRaw/model/ui/source/png/tab-未选中.png.meta diff --git a/Assets/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png b/Assets/AssetRaw/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png similarity index 100% rename from Assets/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png rename to Assets/AssetRaw/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png diff --git a/Assets/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png.meta b/Assets/AssetRaw/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png.meta similarity index 100% rename from Assets/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png.meta rename to Assets/AssetRaw/model/ui/source/png/u=3728842059,4073487843&fm=253&fmt=auto&app=138&f=JPEG.png.meta diff --git a/Assets/model/ui/source/png/下载 (1).png b/Assets/AssetRaw/model/ui/source/png/下载 (1).png similarity index 100% rename from Assets/model/ui/source/png/下载 (1).png rename to Assets/AssetRaw/model/ui/source/png/下载 (1).png diff --git a/Assets/model/ui/source/png/下载 (1).png.meta b/Assets/AssetRaw/model/ui/source/png/下载 (1).png.meta similarity index 100% rename from Assets/model/ui/source/png/下载 (1).png.meta rename to Assets/AssetRaw/model/ui/source/png/下载 (1).png.meta diff --git a/Assets/model/ui/source/png/左侧栏Timeline.playable b/Assets/AssetRaw/model/ui/source/png/左侧栏Timeline.playable similarity index 100% rename from Assets/model/ui/source/png/左侧栏Timeline.playable rename to Assets/AssetRaw/model/ui/source/png/左侧栏Timeline.playable diff --git a/Assets/model/ui/source/png/左侧栏Timeline.playable.meta b/Assets/AssetRaw/model/ui/source/png/左侧栏Timeline.playable.meta similarity index 100% rename from Assets/model/ui/source/png/左侧栏Timeline.playable.meta rename to Assets/AssetRaw/model/ui/source/png/左侧栏Timeline.playable.meta diff --git a/Assets/model/ui/source/png/指标背景.png b/Assets/AssetRaw/model/ui/source/png/指标背景.png similarity index 100% rename from Assets/model/ui/source/png/指标背景.png rename to Assets/AssetRaw/model/ui/source/png/指标背景.png diff --git a/Assets/model/ui/source/png/指标背景.png.meta b/Assets/AssetRaw/model/ui/source/png/指标背景.png.meta similarity index 100% rename from Assets/model/ui/source/png/指标背景.png.meta rename to Assets/AssetRaw/model/ui/source/png/指标背景.png.meta diff --git a/Assets/model/ui/source/png/新聚力-LOGO0706-03.png b/Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-03.png similarity index 100% rename from Assets/model/ui/source/png/新聚力-LOGO0706-03.png rename to Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-03.png diff --git a/Assets/model/ui/source/png/新聚力-LOGO0706-03.png.meta b/Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-03.png.meta similarity index 100% rename from Assets/model/ui/source/png/新聚力-LOGO0706-03.png.meta rename to Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-03.png.meta diff --git a/Assets/model/ui/source/png/新聚力-LOGO0706-04.png b/Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-04.png similarity index 100% rename from Assets/model/ui/source/png/新聚力-LOGO0706-04.png rename to Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-04.png diff --git a/Assets/model/ui/source/png/新聚力-LOGO0706-04.png.meta b/Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-04.png.meta similarity index 100% rename from Assets/model/ui/source/png/新聚力-LOGO0706-04.png.meta rename to Assets/AssetRaw/model/ui/source/png/新聚力-LOGO0706-04.png.meta diff --git a/Assets/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png b/Assets/AssetRaw/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png similarity index 100% rename from Assets/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png rename to Assets/AssetRaw/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png diff --git a/Assets/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png.meta b/Assets/AssetRaw/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png.meta similarity index 100% rename from Assets/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png.meta rename to Assets/AssetRaw/model/ui/source/png/科幻机能 赛博朋克 未来科技HUD边框科技边框 (19)_爱给网_aigei_com.png.meta diff --git a/Assets/model/ui/source/png/箭头001.png b/Assets/AssetRaw/model/ui/source/png/箭头001.png similarity index 100% rename from Assets/model/ui/source/png/箭头001.png rename to Assets/AssetRaw/model/ui/source/png/箭头001.png diff --git a/Assets/model/ui/source/png/箭头001.png.meta b/Assets/AssetRaw/model/ui/source/png/箭头001.png.meta similarity index 100% rename from Assets/model/ui/source/png/箭头001.png.meta rename to Assets/AssetRaw/model/ui/source/png/箭头001.png.meta diff --git a/Assets/model/ui/source/png/箭头002.png b/Assets/AssetRaw/model/ui/source/png/箭头002.png similarity index 100% rename from Assets/model/ui/source/png/箭头002.png rename to Assets/AssetRaw/model/ui/source/png/箭头002.png diff --git a/Assets/model/ui/source/png/箭头002.png.meta b/Assets/AssetRaw/model/ui/source/png/箭头002.png.meta similarity index 100% rename from Assets/model/ui/source/png/箭头002.png.meta rename to Assets/AssetRaw/model/ui/source/png/箭头002.png.meta diff --git a/Assets/model/ui/source/png/资源 52@2x-8.png b/Assets/AssetRaw/model/ui/source/png/资源 52@2x-8.png similarity index 100% rename from Assets/model/ui/source/png/资源 52@2x-8.png rename to Assets/AssetRaw/model/ui/source/png/资源 52@2x-8.png diff --git a/Assets/model/ui/source/png/资源 52@2x-8.png.meta b/Assets/AssetRaw/model/ui/source/png/资源 52@2x-8.png.meta similarity index 100% rename from Assets/model/ui/source/png/资源 52@2x-8.png.meta rename to Assets/AssetRaw/model/ui/source/png/资源 52@2x-8.png.meta diff --git a/Assets/model/ui/source/png/进度条背景.png b/Assets/AssetRaw/model/ui/source/png/进度条背景.png similarity index 100% rename from Assets/model/ui/source/png/进度条背景.png rename to Assets/AssetRaw/model/ui/source/png/进度条背景.png diff --git a/Assets/model/ui/source/png/进度条背景.png.meta b/Assets/AssetRaw/model/ui/source/png/进度条背景.png.meta similarity index 100% rename from Assets/model/ui/source/png/进度条背景.png.meta rename to Assets/AssetRaw/model/ui/source/png/进度条背景.png.meta diff --git a/Assets/model/ui/source/quad.meta b/Assets/AssetRaw/model/ui/source/quad.meta similarity index 100% rename from Assets/model/ui/source/quad.meta rename to Assets/AssetRaw/model/ui/source/quad.meta diff --git a/Assets/model/ui/source/quad/Quad-5px.psd b/Assets/AssetRaw/model/ui/source/quad/Quad-5px.psd similarity index 100% rename from Assets/model/ui/source/quad/Quad-5px.psd rename to Assets/AssetRaw/model/ui/source/quad/Quad-5px.psd diff --git a/Assets/model/ui/source/quad/Quad-5px.psd.meta b/Assets/AssetRaw/model/ui/source/quad/Quad-5px.psd.meta similarity index 100% rename from Assets/model/ui/source/quad/Quad-5px.psd.meta rename to Assets/AssetRaw/model/ui/source/quad/Quad-5px.psd.meta diff --git a/Assets/model/ui/source/quad/Quad-Filled-1px.psd b/Assets/AssetRaw/model/ui/source/quad/Quad-Filled-1px.psd similarity index 100% rename from Assets/model/ui/source/quad/Quad-Filled-1px.psd rename to Assets/AssetRaw/model/ui/source/quad/Quad-Filled-1px.psd diff --git a/Assets/model/ui/source/quad/Quad-Filled-1px.psd.meta b/Assets/AssetRaw/model/ui/source/quad/Quad-Filled-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/quad/Quad-Filled-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/quad/Quad-Filled-1px.psd.meta diff --git a/Assets/model/ui/source/quad/Quad-FilledSemi-1px.psd b/Assets/AssetRaw/model/ui/source/quad/Quad-FilledSemi-1px.psd similarity index 100% rename from Assets/model/ui/source/quad/Quad-FilledSemi-1px.psd rename to Assets/AssetRaw/model/ui/source/quad/Quad-FilledSemi-1px.psd diff --git a/Assets/model/ui/source/quad/Quad-FilledSemi-1px.psd.meta b/Assets/AssetRaw/model/ui/source/quad/Quad-FilledSemi-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/quad/Quad-FilledSemi-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/quad/Quad-FilledSemi-1px.psd.meta diff --git a/Assets/model/ui/source/quad/Quad-Semi-1px.psd b/Assets/AssetRaw/model/ui/source/quad/Quad-Semi-1px.psd similarity index 100% rename from Assets/model/ui/source/quad/Quad-Semi-1px.psd rename to Assets/AssetRaw/model/ui/source/quad/Quad-Semi-1px.psd diff --git a/Assets/model/ui/source/quad/Quad-Semi-1px.psd.meta b/Assets/AssetRaw/model/ui/source/quad/Quad-Semi-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/quad/Quad-Semi-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/quad/Quad-Semi-1px.psd.meta diff --git a/Assets/model/ui/source/quad/Quad-Semi-5px.psd b/Assets/AssetRaw/model/ui/source/quad/Quad-Semi-5px.psd similarity index 100% rename from Assets/model/ui/source/quad/Quad-Semi-5px.psd rename to Assets/AssetRaw/model/ui/source/quad/Quad-Semi-5px.psd diff --git a/Assets/model/ui/source/quad/Quad-Semi-5px.psd.meta b/Assets/AssetRaw/model/ui/source/quad/Quad-Semi-5px.psd.meta similarity index 100% rename from Assets/model/ui/source/quad/Quad-Semi-5px.psd.meta rename to Assets/AssetRaw/model/ui/source/quad/Quad-Semi-5px.psd.meta diff --git a/Assets/model/ui/source/rombo.meta b/Assets/AssetRaw/model/ui/source/rombo.meta similarity index 100% rename from Assets/model/ui/source/rombo.meta rename to Assets/AssetRaw/model/ui/source/rombo.meta diff --git a/Assets/model/ui/source/rombo/Rombo-1px.psd b/Assets/AssetRaw/model/ui/source/rombo/Rombo-1px.psd similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-1px.psd rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-1px.psd diff --git a/Assets/model/ui/source/rombo/Rombo-1px.psd.meta b/Assets/AssetRaw/model/ui/source/rombo/Rombo-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-1px.psd.meta diff --git a/Assets/model/ui/source/rombo/Rombo-5px.psd b/Assets/AssetRaw/model/ui/source/rombo/Rombo-5px.psd similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-5px.psd rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-5px.psd diff --git a/Assets/model/ui/source/rombo/Rombo-5px.psd.meta b/Assets/AssetRaw/model/ui/source/rombo/Rombo-5px.psd.meta similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-5px.psd.meta rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-5px.psd.meta diff --git a/Assets/model/ui/source/rombo/Rombo-Filled-1px.psd b/Assets/AssetRaw/model/ui/source/rombo/Rombo-Filled-1px.psd similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-Filled-1px.psd rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-Filled-1px.psd diff --git a/Assets/model/ui/source/rombo/Rombo-Filled-1px.psd.meta b/Assets/AssetRaw/model/ui/source/rombo/Rombo-Filled-1px.psd.meta similarity index 100% rename from Assets/model/ui/source/rombo/Rombo-Filled-1px.psd.meta rename to Assets/AssetRaw/model/ui/source/rombo/Rombo-Filled-1px.psd.meta diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas.meta b/Assets/GameLogic.meta similarity index 77% rename from Assets/AddressableAssetsData/AssetGroups/Schemas.meta rename to Assets/GameLogic.meta index b3a07d8..af1abbc 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Schemas.meta +++ b/Assets/GameLogic.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e602b892e37fb5745bd0e15843026c1c +guid: 7954476545d0c45478426e05b90acc16 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/AddressableAssetsData/AssetGroupTemplates.meta b/Assets/GameLogic/Game.meta similarity index 77% rename from Assets/AddressableAssetsData/AssetGroupTemplates.meta rename to Assets/GameLogic/Game.meta index 0757a4f..87d158c 100644 --- a/Assets/AddressableAssetsData/AssetGroupTemplates.meta +++ b/Assets/GameLogic/Game.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3c6857c12c9b38e4abe61ba95682d13f +guid: be6bca85f768ea9499432869f0bac8a2 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/GameLogic/Game/Common.meta b/Assets/GameLogic/Game/Common.meta new file mode 100644 index 0000000..8e2a4f0 --- /dev/null +++ b/Assets/GameLogic/Game/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99bef4e5ff18c5d4f9fad73a0fd538da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameLogic/Game/Common/Singleton.cs b/Assets/GameLogic/Game/Common/Singleton.cs new file mode 100644 index 0000000..7f4f2bf --- /dev/null +++ b/Assets/GameLogic/Game/Common/Singleton.cs @@ -0,0 +1,61 @@ +using System; +using UnityEngine; + +public class Singleton : MonoBehaviour where T : class +{ + private static T _instance; + + public static T Instance + { + get + { + if (_instance == null) + { + _instance = FindObjectOfType(); + + if (_instance == null) + { + GameObject obj = new GameObject(); + obj.name = typeof(T).Name; + _instance = obj.AddComponent(); + } + } + + return _instance; + } + } + + protected virtual void Awake() + { + if (_instance == null) + { + _instance = this as T; + OnLoad(); + DontDestroyOnLoad(gameObject); + } + else + { + Destroy(gameObject); + } + } + + private void Update() + { + OnUpdate(); + } + + + #region 生命周期 + + protected virtual void OnLoad() + { + + } + + protected virtual void OnUpdate() + { + + } + + #endregion +} \ No newline at end of file diff --git a/Assets/GameLogic/Game/Common/Singleton.cs.meta b/Assets/GameLogic/Game/Common/Singleton.cs.meta new file mode 100644 index 0000000..091e776 --- /dev/null +++ b/Assets/GameLogic/Game/Common/Singleton.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c2d58d24aaa8c3c4d8f3c79c03de5b16 \ No newline at end of file diff --git a/Assets/GameLogic/Game/Core.meta b/Assets/GameLogic/Game/Core.meta new file mode 100644 index 0000000..47e8b80 --- /dev/null +++ b/Assets/GameLogic/Game/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21e78b6cb73f3a54da5a2f5129a08b57 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameLogic/Game/Core/Actor.meta b/Assets/GameLogic/Game/Core/Actor.meta new file mode 100644 index 0000000..f7ef8ca --- /dev/null +++ b/Assets/GameLogic/Game/Core/Actor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efb120571f2adfb408b6992578f60f12 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs b/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs new file mode 100644 index 0000000..eea4f68 --- /dev/null +++ b/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public class ActorMgr : Singleton +{ + +} diff --git a/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs.meta b/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs.meta new file mode 100644 index 0000000..781d572 --- /dev/null +++ b/Assets/GameLogic/Game/Core/Actor/ActorMgr.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5717b012eb0dbae44a21bea976ff356e \ No newline at end of file diff --git a/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs b/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs new file mode 100644 index 0000000..d298e1a --- /dev/null +++ b/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs @@ -0,0 +1,16 @@ +using UnityEngine; + +public class ShelfActor : MonoBehaviour +{ + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs.meta b/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs.meta new file mode 100644 index 0000000..6c68a05 --- /dev/null +++ b/Assets/GameLogic/Game/Core/Actor/ShelfActor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 680adbdfc1fb6c542ae1b47eca2e48ee \ No newline at end of file diff --git a/Assets/GameLogic/Game/Utility.meta b/Assets/GameLogic/Game/Utility.meta new file mode 100644 index 0000000..75ea4d1 --- /dev/null +++ b/Assets/GameLogic/Game/Utility.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dadfecdfb8b94f645be560b53885c7e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameLogic/Origin.meta b/Assets/GameLogic/Origin.meta new file mode 100644 index 0000000..748bf64 --- /dev/null +++ b/Assets/GameLogic/Origin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a831f2bdf180924c805912dc3468cb9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/script/application.meta b/Assets/GameLogic/Origin/application.meta similarity index 100% rename from Assets/script/application.meta rename to Assets/GameLogic/Origin/application.meta diff --git a/Assets/script/application/ApplicationBoot.cs b/Assets/GameLogic/Origin/application/ApplicationBoot.cs similarity index 100% rename from Assets/script/application/ApplicationBoot.cs rename to Assets/GameLogic/Origin/application/ApplicationBoot.cs diff --git a/Assets/script/application/ApplicationBoot.cs.meta b/Assets/GameLogic/Origin/application/ApplicationBoot.cs.meta similarity index 100% rename from Assets/script/application/ApplicationBoot.cs.meta rename to Assets/GameLogic/Origin/application/ApplicationBoot.cs.meta diff --git a/Assets/script/application/ApplicationStateMachine.cs b/Assets/GameLogic/Origin/application/ApplicationStateMachine.cs similarity index 100% rename from Assets/script/application/ApplicationStateMachine.cs rename to Assets/GameLogic/Origin/application/ApplicationStateMachine.cs diff --git a/Assets/script/application/ApplicationStateMachine.cs.meta b/Assets/GameLogic/Origin/application/ApplicationStateMachine.cs.meta similarity index 100% rename from Assets/script/application/ApplicationStateMachine.cs.meta rename to Assets/GameLogic/Origin/application/ApplicationStateMachine.cs.meta diff --git a/Assets/script/application/IApplcationShutdown.cs b/Assets/GameLogic/Origin/application/IApplcationShutdown.cs similarity index 100% rename from Assets/script/application/IApplcationShutdown.cs rename to Assets/GameLogic/Origin/application/IApplcationShutdown.cs diff --git a/Assets/script/application/IApplcationShutdown.cs.meta b/Assets/GameLogic/Origin/application/IApplcationShutdown.cs.meta similarity index 100% rename from Assets/script/application/IApplcationShutdown.cs.meta rename to Assets/GameLogic/Origin/application/IApplcationShutdown.cs.meta diff --git a/Assets/script/application/IProcessCompleted.cs b/Assets/GameLogic/Origin/application/IProcessCompleted.cs similarity index 100% rename from Assets/script/application/IProcessCompleted.cs rename to Assets/GameLogic/Origin/application/IProcessCompleted.cs diff --git a/Assets/script/application/IProcessCompleted.cs.meta b/Assets/GameLogic/Origin/application/IProcessCompleted.cs.meta similarity index 100% rename from Assets/script/application/IProcessCompleted.cs.meta rename to Assets/GameLogic/Origin/application/IProcessCompleted.cs.meta diff --git a/Assets/script/application/IProcessState.cs b/Assets/GameLogic/Origin/application/IProcessState.cs similarity index 100% rename from Assets/script/application/IProcessState.cs rename to Assets/GameLogic/Origin/application/IProcessState.cs diff --git a/Assets/script/application/IProcessState.cs.meta b/Assets/GameLogic/Origin/application/IProcessState.cs.meta similarity index 100% rename from Assets/script/application/IProcessState.cs.meta rename to Assets/GameLogic/Origin/application/IProcessState.cs.meta diff --git a/Assets/script/application/InitNetWorkProcess.cs b/Assets/GameLogic/Origin/application/InitNetWorkProcess.cs similarity index 100% rename from Assets/script/application/InitNetWorkProcess.cs rename to Assets/GameLogic/Origin/application/InitNetWorkProcess.cs diff --git a/Assets/script/application/InitNetWorkProcess.cs.meta b/Assets/GameLogic/Origin/application/InitNetWorkProcess.cs.meta similarity index 100% rename from Assets/script/application/InitNetWorkProcess.cs.meta rename to Assets/GameLogic/Origin/application/InitNetWorkProcess.cs.meta diff --git a/Assets/script/application/InitStorageProcess.cs b/Assets/GameLogic/Origin/application/InitStorageProcess.cs similarity index 100% rename from Assets/script/application/InitStorageProcess.cs rename to Assets/GameLogic/Origin/application/InitStorageProcess.cs diff --git a/Assets/script/application/InitStorageProcess.cs.meta b/Assets/GameLogic/Origin/application/InitStorageProcess.cs.meta similarity index 100% rename from Assets/script/application/InitStorageProcess.cs.meta rename to Assets/GameLogic/Origin/application/InitStorageProcess.cs.meta diff --git a/Assets/script/application/SkipUnityLogo.cs b/Assets/GameLogic/Origin/application/SkipUnityLogo.cs similarity index 100% rename from Assets/script/application/SkipUnityLogo.cs rename to Assets/GameLogic/Origin/application/SkipUnityLogo.cs diff --git a/Assets/script/application/SkipUnityLogo.cs.meta b/Assets/GameLogic/Origin/application/SkipUnityLogo.cs.meta similarity index 100% rename from Assets/script/application/SkipUnityLogo.cs.meta rename to Assets/GameLogic/Origin/application/SkipUnityLogo.cs.meta diff --git a/Assets/script/camera.meta b/Assets/GameLogic/Origin/camera.meta similarity index 100% rename from Assets/script/camera.meta rename to Assets/GameLogic/Origin/camera.meta diff --git a/Assets/script/camera/CameraController.cs b/Assets/GameLogic/Origin/camera/CameraController.cs similarity index 100% rename from Assets/script/camera/CameraController.cs rename to Assets/GameLogic/Origin/camera/CameraController.cs diff --git a/Assets/script/camera/CameraController.cs.meta b/Assets/GameLogic/Origin/camera/CameraController.cs.meta similarity index 100% rename from Assets/script/camera/CameraController.cs.meta rename to Assets/GameLogic/Origin/camera/CameraController.cs.meta diff --git a/Assets/script/camera/CameraFollow.cs b/Assets/GameLogic/Origin/camera/CameraFollow.cs similarity index 100% rename from Assets/script/camera/CameraFollow.cs rename to Assets/GameLogic/Origin/camera/CameraFollow.cs diff --git a/Assets/script/camera/CameraFollow.cs.meta b/Assets/GameLogic/Origin/camera/CameraFollow.cs.meta similarity index 100% rename from Assets/script/camera/CameraFollow.cs.meta rename to Assets/GameLogic/Origin/camera/CameraFollow.cs.meta diff --git a/Assets/script/camera/CameraManage.cs b/Assets/GameLogic/Origin/camera/CameraManage.cs similarity index 100% rename from Assets/script/camera/CameraManage.cs rename to Assets/GameLogic/Origin/camera/CameraManage.cs diff --git a/Assets/script/camera/CameraManage.cs.meta b/Assets/GameLogic/Origin/camera/CameraManage.cs.meta similarity index 100% rename from Assets/script/camera/CameraManage.cs.meta rename to Assets/GameLogic/Origin/camera/CameraManage.cs.meta diff --git a/Assets/script/camera/CameraRotate.cs b/Assets/GameLogic/Origin/camera/CameraRotate.cs similarity index 100% rename from Assets/script/camera/CameraRotate.cs rename to Assets/GameLogic/Origin/camera/CameraRotate.cs diff --git a/Assets/script/camera/CameraRotate.cs.meta b/Assets/GameLogic/Origin/camera/CameraRotate.cs.meta similarity index 100% rename from Assets/script/camera/CameraRotate.cs.meta rename to Assets/GameLogic/Origin/camera/CameraRotate.cs.meta diff --git a/Assets/script/camera/CameraShotCut.cs b/Assets/GameLogic/Origin/camera/CameraShotCut.cs similarity index 100% rename from Assets/script/camera/CameraShotCut.cs rename to Assets/GameLogic/Origin/camera/CameraShotCut.cs diff --git a/Assets/script/camera/CameraShotCut.cs.meta b/Assets/GameLogic/Origin/camera/CameraShotCut.cs.meta similarity index 100% rename from Assets/script/camera/CameraShotCut.cs.meta rename to Assets/GameLogic/Origin/camera/CameraShotCut.cs.meta diff --git a/Assets/script/camera/IFollowHelp.cs b/Assets/GameLogic/Origin/camera/IFollowHelp.cs similarity index 100% rename from Assets/script/camera/IFollowHelp.cs rename to Assets/GameLogic/Origin/camera/IFollowHelp.cs diff --git a/Assets/script/camera/IFollowHelp.cs.meta b/Assets/GameLogic/Origin/camera/IFollowHelp.cs.meta similarity index 100% rename from Assets/script/camera/IFollowHelp.cs.meta rename to Assets/GameLogic/Origin/camera/IFollowHelp.cs.meta diff --git a/Assets/script/camera/Main Camera Blends.asset b/Assets/GameLogic/Origin/camera/Main Camera Blends.asset similarity index 100% rename from Assets/script/camera/Main Camera Blends.asset rename to Assets/GameLogic/Origin/camera/Main Camera Blends.asset diff --git a/Assets/script/camera/Main Camera Blends.asset.meta b/Assets/GameLogic/Origin/camera/Main Camera Blends.asset.meta similarity index 100% rename from Assets/script/camera/Main Camera Blends.asset.meta rename to Assets/GameLogic/Origin/camera/Main Camera Blends.asset.meta diff --git a/Assets/script/camera/MainCameraTimeline.playable b/Assets/GameLogic/Origin/camera/MainCameraTimeline.playable similarity index 100% rename from Assets/script/camera/MainCameraTimeline.playable rename to Assets/GameLogic/Origin/camera/MainCameraTimeline.playable diff --git a/Assets/script/camera/MainCameraTimeline.playable.meta b/Assets/GameLogic/Origin/camera/MainCameraTimeline.playable.meta similarity index 100% rename from Assets/script/camera/MainCameraTimeline.playable.meta rename to Assets/GameLogic/Origin/camera/MainCameraTimeline.playable.meta diff --git a/Assets/script/camera/_lighting b/Assets/GameLogic/Origin/camera/_lighting similarity index 100% rename from Assets/script/camera/_lighting rename to Assets/GameLogic/Origin/camera/_lighting diff --git a/Assets/script/camera/_lighting.meta b/Assets/GameLogic/Origin/camera/_lighting.meta similarity index 100% rename from Assets/script/camera/_lighting.meta rename to Assets/GameLogic/Origin/camera/_lighting.meta diff --git a/Assets/script/data.meta b/Assets/GameLogic/Origin/data.meta similarity index 100% rename from Assets/script/data.meta rename to Assets/GameLogic/Origin/data.meta diff --git a/Assets/script/data/AgvData.cs b/Assets/GameLogic/Origin/data/AgvData.cs similarity index 100% rename from Assets/script/data/AgvData.cs rename to Assets/GameLogic/Origin/data/AgvData.cs diff --git a/Assets/script/data/AgvData.cs.meta b/Assets/GameLogic/Origin/data/AgvData.cs.meta similarity index 100% rename from Assets/script/data/AgvData.cs.meta rename to Assets/GameLogic/Origin/data/AgvData.cs.meta diff --git a/Assets/script/data/AgvTaskData.cs b/Assets/GameLogic/Origin/data/AgvTaskData.cs similarity index 100% rename from Assets/script/data/AgvTaskData.cs rename to Assets/GameLogic/Origin/data/AgvTaskData.cs diff --git a/Assets/script/data/AgvTaskData.cs.meta b/Assets/GameLogic/Origin/data/AgvTaskData.cs.meta similarity index 100% rename from Assets/script/data/AgvTaskData.cs.meta rename to Assets/GameLogic/Origin/data/AgvTaskData.cs.meta diff --git a/Assets/script/data/ConveyorData.cs b/Assets/GameLogic/Origin/data/ConveyorData.cs similarity index 100% rename from Assets/script/data/ConveyorData.cs rename to Assets/GameLogic/Origin/data/ConveyorData.cs diff --git a/Assets/script/data/ConveyorData.cs.meta b/Assets/GameLogic/Origin/data/ConveyorData.cs.meta similarity index 100% rename from Assets/script/data/ConveyorData.cs.meta rename to Assets/GameLogic/Origin/data/ConveyorData.cs.meta diff --git a/Assets/script/data/DeviceData.cs b/Assets/GameLogic/Origin/data/DeviceData.cs similarity index 100% rename from Assets/script/data/DeviceData.cs rename to Assets/GameLogic/Origin/data/DeviceData.cs diff --git a/Assets/script/data/DeviceData.cs.meta b/Assets/GameLogic/Origin/data/DeviceData.cs.meta similarity index 100% rename from Assets/script/data/DeviceData.cs.meta rename to Assets/GameLogic/Origin/data/DeviceData.cs.meta diff --git a/Assets/script/data/KeyValueObject.cs b/Assets/GameLogic/Origin/data/KeyValueObject.cs similarity index 100% rename from Assets/script/data/KeyValueObject.cs rename to Assets/GameLogic/Origin/data/KeyValueObject.cs diff --git a/Assets/script/data/KeyValueObject.cs.meta b/Assets/GameLogic/Origin/data/KeyValueObject.cs.meta similarity index 100% rename from Assets/script/data/KeyValueObject.cs.meta rename to Assets/GameLogic/Origin/data/KeyValueObject.cs.meta diff --git a/Assets/script/data/StackerData.cs b/Assets/GameLogic/Origin/data/StackerData.cs similarity index 100% rename from Assets/script/data/StackerData.cs rename to Assets/GameLogic/Origin/data/StackerData.cs diff --git a/Assets/script/data/StackerData.cs.meta b/Assets/GameLogic/Origin/data/StackerData.cs.meta similarity index 100% rename from Assets/script/data/StackerData.cs.meta rename to Assets/GameLogic/Origin/data/StackerData.cs.meta diff --git a/Assets/script/data/StorageRequestEntity.cs b/Assets/GameLogic/Origin/data/StorageRequestEntity.cs similarity index 100% rename from Assets/script/data/StorageRequestEntity.cs rename to Assets/GameLogic/Origin/data/StorageRequestEntity.cs diff --git a/Assets/script/data/StorageRequestEntity.cs.meta b/Assets/GameLogic/Origin/data/StorageRequestEntity.cs.meta similarity index 100% rename from Assets/script/data/StorageRequestEntity.cs.meta rename to Assets/GameLogic/Origin/data/StorageRequestEntity.cs.meta diff --git a/Assets/script/data/StorageRespones.cs b/Assets/GameLogic/Origin/data/StorageRespones.cs similarity index 100% rename from Assets/script/data/StorageRespones.cs rename to Assets/GameLogic/Origin/data/StorageRespones.cs diff --git a/Assets/script/data/StorageRespones.cs.meta b/Assets/GameLogic/Origin/data/StorageRespones.cs.meta similarity index 100% rename from Assets/script/data/StorageRespones.cs.meta rename to Assets/GameLogic/Origin/data/StorageRespones.cs.meta diff --git a/Assets/script/device.meta b/Assets/GameLogic/Origin/device.meta similarity index 100% rename from Assets/script/device.meta rename to Assets/GameLogic/Origin/device.meta diff --git a/Assets/script/device/AGVTimeline.playable b/Assets/GameLogic/Origin/device/AGVTimeline.playable similarity index 100% rename from Assets/script/device/AGVTimeline.playable rename to Assets/GameLogic/Origin/device/AGVTimeline.playable diff --git a/Assets/script/device/AGVTimeline.playable.meta b/Assets/GameLogic/Origin/device/AGVTimeline.playable.meta similarity index 100% rename from Assets/script/device/AGVTimeline.playable.meta rename to Assets/GameLogic/Origin/device/AGVTimeline.playable.meta diff --git a/Assets/script/device/AbstractDevice.cs b/Assets/GameLogic/Origin/device/AbstractDevice.cs similarity index 100% rename from Assets/script/device/AbstractDevice.cs rename to Assets/GameLogic/Origin/device/AbstractDevice.cs diff --git a/Assets/script/device/AbstractDevice.cs.meta b/Assets/GameLogic/Origin/device/AbstractDevice.cs.meta similarity index 100% rename from Assets/script/device/AbstractDevice.cs.meta rename to Assets/GameLogic/Origin/device/AbstractDevice.cs.meta diff --git a/Assets/script/device/DeviceParseService.cs b/Assets/GameLogic/Origin/device/DeviceParseService.cs similarity index 100% rename from Assets/script/device/DeviceParseService.cs rename to Assets/GameLogic/Origin/device/DeviceParseService.cs diff --git a/Assets/script/device/DeviceParseService.cs.meta b/Assets/GameLogic/Origin/device/DeviceParseService.cs.meta similarity index 100% rename from Assets/script/device/DeviceParseService.cs.meta rename to Assets/GameLogic/Origin/device/DeviceParseService.cs.meta diff --git a/Assets/script/device/DeviceStatus.cs b/Assets/GameLogic/Origin/device/DeviceStatus.cs similarity index 100% rename from Assets/script/device/DeviceStatus.cs rename to Assets/GameLogic/Origin/device/DeviceStatus.cs diff --git a/Assets/script/device/DeviceStatus.cs.meta b/Assets/GameLogic/Origin/device/DeviceStatus.cs.meta similarity index 100% rename from Assets/script/device/DeviceStatus.cs.meta rename to Assets/GameLogic/Origin/device/DeviceStatus.cs.meta diff --git a/Assets/script/device/ICar.cs b/Assets/GameLogic/Origin/device/ICar.cs similarity index 100% rename from Assets/script/device/ICar.cs rename to Assets/GameLogic/Origin/device/ICar.cs diff --git a/Assets/script/device/ICar.cs.meta b/Assets/GameLogic/Origin/device/ICar.cs.meta similarity index 100% rename from Assets/script/device/ICar.cs.meta rename to Assets/GameLogic/Origin/device/ICar.cs.meta diff --git a/Assets/script/device/IDevice.cs b/Assets/GameLogic/Origin/device/IDevice.cs similarity index 100% rename from Assets/script/device/IDevice.cs rename to Assets/GameLogic/Origin/device/IDevice.cs diff --git a/Assets/script/device/IDevice.cs.meta b/Assets/GameLogic/Origin/device/IDevice.cs.meta similarity index 100% rename from Assets/script/device/IDevice.cs.meta rename to Assets/GameLogic/Origin/device/IDevice.cs.meta diff --git a/Assets/script/device/agv.meta b/Assets/GameLogic/Origin/device/agv.meta similarity index 100% rename from Assets/script/device/agv.meta rename to Assets/GameLogic/Origin/device/agv.meta diff --git a/Assets/script/device/agv/AgvCarManage.cs b/Assets/GameLogic/Origin/device/agv/AgvCarManage.cs similarity index 100% rename from Assets/script/device/agv/AgvCarManage.cs rename to Assets/GameLogic/Origin/device/agv/AgvCarManage.cs diff --git a/Assets/script/device/agv/AgvCarManage.cs.meta b/Assets/GameLogic/Origin/device/agv/AgvCarManage.cs.meta similarity index 100% rename from Assets/script/device/agv/AgvCarManage.cs.meta rename to Assets/GameLogic/Origin/device/agv/AgvCarManage.cs.meta diff --git a/Assets/script/device/agv/AgvForkSignal.signal b/Assets/GameLogic/Origin/device/agv/AgvForkSignal.signal similarity index 100% rename from Assets/script/device/agv/AgvForkSignal.signal rename to Assets/GameLogic/Origin/device/agv/AgvForkSignal.signal diff --git a/Assets/script/device/agv/AgvForkSignal.signal.meta b/Assets/GameLogic/Origin/device/agv/AgvForkSignal.signal.meta similarity index 100% rename from Assets/script/device/agv/AgvForkSignal.signal.meta rename to Assets/GameLogic/Origin/device/agv/AgvForkSignal.signal.meta diff --git a/Assets/script/device/agv/ForkAgvDevice.cs b/Assets/GameLogic/Origin/device/agv/ForkAgvDevice.cs similarity index 100% rename from Assets/script/device/agv/ForkAgvDevice.cs rename to Assets/GameLogic/Origin/device/agv/ForkAgvDevice.cs diff --git a/Assets/script/device/agv/ForkAgvDevice.cs.meta b/Assets/GameLogic/Origin/device/agv/ForkAgvDevice.cs.meta similarity index 100% rename from Assets/script/device/agv/ForkAgvDevice.cs.meta rename to Assets/GameLogic/Origin/device/agv/ForkAgvDevice.cs.meta diff --git a/Assets/script/device/container.meta b/Assets/GameLogic/Origin/device/container.meta similarity index 100% rename from Assets/script/device/container.meta rename to Assets/GameLogic/Origin/device/container.meta diff --git a/Assets/script/device/container/Container.cs b/Assets/GameLogic/Origin/device/container/Container.cs similarity index 100% rename from Assets/script/device/container/Container.cs rename to Assets/GameLogic/Origin/device/container/Container.cs diff --git a/Assets/script/device/container/Container.cs.meta b/Assets/GameLogic/Origin/device/container/Container.cs.meta similarity index 100% rename from Assets/script/device/container/Container.cs.meta rename to Assets/GameLogic/Origin/device/container/Container.cs.meta diff --git a/Assets/script/device/container/ContainerEntity.cs b/Assets/GameLogic/Origin/device/container/ContainerEntity.cs similarity index 100% rename from Assets/script/device/container/ContainerEntity.cs rename to Assets/GameLogic/Origin/device/container/ContainerEntity.cs diff --git a/Assets/script/device/container/ContainerEntity.cs.meta b/Assets/GameLogic/Origin/device/container/ContainerEntity.cs.meta similarity index 100% rename from Assets/script/device/container/ContainerEntity.cs.meta rename to Assets/GameLogic/Origin/device/container/ContainerEntity.cs.meta diff --git a/Assets/script/device/container/ContainersManage.cs b/Assets/GameLogic/Origin/device/container/ContainersManage.cs similarity index 100% rename from Assets/script/device/container/ContainersManage.cs rename to Assets/GameLogic/Origin/device/container/ContainersManage.cs diff --git a/Assets/script/device/container/ContainersManage.cs.meta b/Assets/GameLogic/Origin/device/container/ContainersManage.cs.meta similarity index 100% rename from Assets/script/device/container/ContainersManage.cs.meta rename to Assets/GameLogic/Origin/device/container/ContainersManage.cs.meta diff --git a/Assets/script/device/container/New Lighting Settings.lighting b/Assets/GameLogic/Origin/device/container/New Lighting Settings.lighting similarity index 100% rename from Assets/script/device/container/New Lighting Settings.lighting rename to Assets/GameLogic/Origin/device/container/New Lighting Settings.lighting diff --git a/Assets/script/device/container/New Lighting Settings.lighting.meta b/Assets/GameLogic/Origin/device/container/New Lighting Settings.lighting.meta similarity index 100% rename from Assets/script/device/container/New Lighting Settings.lighting.meta rename to Assets/GameLogic/Origin/device/container/New Lighting Settings.lighting.meta diff --git a/Assets/script/device/conveyor.meta b/Assets/GameLogic/Origin/device/conveyor.meta similarity index 100% rename from Assets/script/device/conveyor.meta rename to Assets/GameLogic/Origin/device/conveyor.meta diff --git a/Assets/script/device/conveyor/AbstractConveyorDevice.cs b/Assets/GameLogic/Origin/device/conveyor/AbstractConveyorDevice.cs similarity index 100% rename from Assets/script/device/conveyor/AbstractConveyorDevice.cs rename to Assets/GameLogic/Origin/device/conveyor/AbstractConveyorDevice.cs diff --git a/Assets/script/device/conveyor/AbstractConveyorDevice.cs.meta b/Assets/GameLogic/Origin/device/conveyor/AbstractConveyorDevice.cs.meta similarity index 100% rename from Assets/script/device/conveyor/AbstractConveyorDevice.cs.meta rename to Assets/GameLogic/Origin/device/conveyor/AbstractConveyorDevice.cs.meta diff --git a/Assets/script/device/conveyor/ConveyorDevice.cs b/Assets/GameLogic/Origin/device/conveyor/ConveyorDevice.cs similarity index 100% rename from Assets/script/device/conveyor/ConveyorDevice.cs rename to Assets/GameLogic/Origin/device/conveyor/ConveyorDevice.cs diff --git a/Assets/script/device/conveyor/ConveyorDevice.cs.meta b/Assets/GameLogic/Origin/device/conveyor/ConveyorDevice.cs.meta similarity index 100% rename from Assets/script/device/conveyor/ConveyorDevice.cs.meta rename to Assets/GameLogic/Origin/device/conveyor/ConveyorDevice.cs.meta diff --git a/Assets/script/device/stacker.meta b/Assets/GameLogic/Origin/device/stacker.meta similarity index 100% rename from Assets/script/device/stacker.meta rename to Assets/GameLogic/Origin/device/stacker.meta diff --git a/Assets/script/device/stacker/Stacker.signal b/Assets/GameLogic/Origin/device/stacker/Stacker.signal similarity index 100% rename from Assets/script/device/stacker/Stacker.signal rename to Assets/GameLogic/Origin/device/stacker/Stacker.signal diff --git a/Assets/script/device/stacker/Stacker.signal.meta b/Assets/GameLogic/Origin/device/stacker/Stacker.signal.meta similarity index 100% rename from Assets/script/device/stacker/Stacker.signal.meta rename to Assets/GameLogic/Origin/device/stacker/Stacker.signal.meta diff --git a/Assets/script/device/stacker/StackerDevice.cs b/Assets/GameLogic/Origin/device/stacker/StackerDevice.cs similarity index 100% rename from Assets/script/device/stacker/StackerDevice.cs rename to Assets/GameLogic/Origin/device/stacker/StackerDevice.cs diff --git a/Assets/script/device/stacker/StackerDevice.cs.meta b/Assets/GameLogic/Origin/device/stacker/StackerDevice.cs.meta similarity index 100% rename from Assets/script/device/stacker/StackerDevice.cs.meta rename to Assets/GameLogic/Origin/device/stacker/StackerDevice.cs.meta diff --git a/Assets/script/device/stacker/StackerForkActionEnum.cs b/Assets/GameLogic/Origin/device/stacker/StackerForkActionEnum.cs similarity index 100% rename from Assets/script/device/stacker/StackerForkActionEnum.cs rename to Assets/GameLogic/Origin/device/stacker/StackerForkActionEnum.cs diff --git a/Assets/script/device/stacker/StackerForkActionEnum.cs.meta b/Assets/GameLogic/Origin/device/stacker/StackerForkActionEnum.cs.meta similarity index 100% rename from Assets/script/device/stacker/StackerForkActionEnum.cs.meta rename to Assets/GameLogic/Origin/device/stacker/StackerForkActionEnum.cs.meta diff --git a/Assets/script/device/stacker/StackerForkCargoEnum.cs b/Assets/GameLogic/Origin/device/stacker/StackerForkCargoEnum.cs similarity index 100% rename from Assets/script/device/stacker/StackerForkCargoEnum.cs rename to Assets/GameLogic/Origin/device/stacker/StackerForkCargoEnum.cs diff --git a/Assets/script/device/stacker/StackerForkCargoEnum.cs.meta b/Assets/GameLogic/Origin/device/stacker/StackerForkCargoEnum.cs.meta similarity index 100% rename from Assets/script/device/stacker/StackerForkCargoEnum.cs.meta rename to Assets/GameLogic/Origin/device/stacker/StackerForkCargoEnum.cs.meta diff --git a/Assets/script/device/stacker/stackerTimeline.playable b/Assets/GameLogic/Origin/device/stacker/stackerTimeline.playable similarity index 100% rename from Assets/script/device/stacker/stackerTimeline.playable rename to Assets/GameLogic/Origin/device/stacker/stackerTimeline.playable diff --git a/Assets/script/device/stacker/stackerTimeline.playable.meta b/Assets/GameLogic/Origin/device/stacker/stackerTimeline.playable.meta similarity index 100% rename from Assets/script/device/stacker/stackerTimeline.playable.meta rename to Assets/GameLogic/Origin/device/stacker/stackerTimeline.playable.meta diff --git a/Assets/script/device/stacker/右浅伸.anim b/Assets/GameLogic/Origin/device/stacker/右浅伸.anim similarity index 100% rename from Assets/script/device/stacker/右浅伸.anim rename to Assets/GameLogic/Origin/device/stacker/右浅伸.anim diff --git a/Assets/script/device/stacker/右浅伸.anim.meta b/Assets/GameLogic/Origin/device/stacker/右浅伸.anim.meta similarity index 100% rename from Assets/script/device/stacker/右浅伸.anim.meta rename to Assets/GameLogic/Origin/device/stacker/右浅伸.anim.meta diff --git a/Assets/script/device/stacker/右浅缩.anim b/Assets/GameLogic/Origin/device/stacker/右浅缩.anim similarity index 100% rename from Assets/script/device/stacker/右浅缩.anim rename to Assets/GameLogic/Origin/device/stacker/右浅缩.anim diff --git a/Assets/script/device/stacker/右浅缩.anim.meta b/Assets/GameLogic/Origin/device/stacker/右浅缩.anim.meta similarity index 100% rename from Assets/script/device/stacker/右浅缩.anim.meta rename to Assets/GameLogic/Origin/device/stacker/右浅缩.anim.meta diff --git a/Assets/script/device/stacker/右深伸.anim b/Assets/GameLogic/Origin/device/stacker/右深伸.anim similarity index 100% rename from Assets/script/device/stacker/右深伸.anim rename to Assets/GameLogic/Origin/device/stacker/右深伸.anim diff --git a/Assets/script/device/stacker/右深伸.anim.meta b/Assets/GameLogic/Origin/device/stacker/右深伸.anim.meta similarity index 100% rename from Assets/script/device/stacker/右深伸.anim.meta rename to Assets/GameLogic/Origin/device/stacker/右深伸.anim.meta diff --git a/Assets/script/device/stacker/右深缩.anim b/Assets/GameLogic/Origin/device/stacker/右深缩.anim similarity index 100% rename from Assets/script/device/stacker/右深缩.anim rename to Assets/GameLogic/Origin/device/stacker/右深缩.anim diff --git a/Assets/script/device/stacker/右深缩.anim.meta b/Assets/GameLogic/Origin/device/stacker/右深缩.anim.meta similarity index 100% rename from Assets/script/device/stacker/右深缩.anim.meta rename to Assets/GameLogic/Origin/device/stacker/右深缩.anim.meta diff --git a/Assets/script/device/stacker/左浅伸.anim b/Assets/GameLogic/Origin/device/stacker/左浅伸.anim similarity index 100% rename from Assets/script/device/stacker/左浅伸.anim rename to Assets/GameLogic/Origin/device/stacker/左浅伸.anim diff --git a/Assets/script/device/stacker/左浅伸.anim.meta b/Assets/GameLogic/Origin/device/stacker/左浅伸.anim.meta similarity index 100% rename from Assets/script/device/stacker/左浅伸.anim.meta rename to Assets/GameLogic/Origin/device/stacker/左浅伸.anim.meta diff --git a/Assets/script/device/stacker/左浅取货.anim b/Assets/GameLogic/Origin/device/stacker/左浅取货.anim similarity index 100% rename from Assets/script/device/stacker/左浅取货.anim rename to Assets/GameLogic/Origin/device/stacker/左浅取货.anim diff --git a/Assets/script/device/stacker/左浅取货.anim.meta b/Assets/GameLogic/Origin/device/stacker/左浅取货.anim.meta similarity index 100% rename from Assets/script/device/stacker/左浅取货.anim.meta rename to Assets/GameLogic/Origin/device/stacker/左浅取货.anim.meta diff --git a/Assets/script/device/stacker/左浅缩.anim b/Assets/GameLogic/Origin/device/stacker/左浅缩.anim similarity index 100% rename from Assets/script/device/stacker/左浅缩.anim rename to Assets/GameLogic/Origin/device/stacker/左浅缩.anim diff --git a/Assets/script/device/stacker/左浅缩.anim.meta b/Assets/GameLogic/Origin/device/stacker/左浅缩.anim.meta similarity index 100% rename from Assets/script/device/stacker/左浅缩.anim.meta rename to Assets/GameLogic/Origin/device/stacker/左浅缩.anim.meta diff --git a/Assets/script/device/stacker/左深伸.anim b/Assets/GameLogic/Origin/device/stacker/左深伸.anim similarity index 100% rename from Assets/script/device/stacker/左深伸.anim rename to Assets/GameLogic/Origin/device/stacker/左深伸.anim diff --git a/Assets/script/device/stacker/左深伸.anim.meta b/Assets/GameLogic/Origin/device/stacker/左深伸.anim.meta similarity index 100% rename from Assets/script/device/stacker/左深伸.anim.meta rename to Assets/GameLogic/Origin/device/stacker/左深伸.anim.meta diff --git a/Assets/script/device/stacker/左深缩 .anim b/Assets/GameLogic/Origin/device/stacker/左深缩 .anim similarity index 100% rename from Assets/script/device/stacker/左深缩 .anim rename to Assets/GameLogic/Origin/device/stacker/左深缩 .anim diff --git a/Assets/script/device/stacker/左深缩 .anim.meta b/Assets/GameLogic/Origin/device/stacker/左深缩 .anim.meta similarity index 100% rename from Assets/script/device/stacker/左深缩 .anim.meta rename to Assets/GameLogic/Origin/device/stacker/左深缩 .anim.meta diff --git a/Assets/script/device/stacker/载货台上升.anim b/Assets/GameLogic/Origin/device/stacker/载货台上升.anim similarity index 100% rename from Assets/script/device/stacker/载货台上升.anim rename to Assets/GameLogic/Origin/device/stacker/载货台上升.anim diff --git a/Assets/script/device/stacker/载货台上升.anim.meta b/Assets/GameLogic/Origin/device/stacker/载货台上升.anim.meta similarity index 100% rename from Assets/script/device/stacker/载货台上升.anim.meta rename to Assets/GameLogic/Origin/device/stacker/载货台上升.anim.meta diff --git a/Assets/script/device/stacker/载货台下降.anim b/Assets/GameLogic/Origin/device/stacker/载货台下降.anim similarity index 100% rename from Assets/script/device/stacker/载货台下降.anim rename to Assets/GameLogic/Origin/device/stacker/载货台下降.anim diff --git a/Assets/script/device/stacker/载货台下降.anim.meta b/Assets/GameLogic/Origin/device/stacker/载货台下降.anim.meta similarity index 100% rename from Assets/script/device/stacker/载货台下降.anim.meta rename to Assets/GameLogic/Origin/device/stacker/载货台下降.anim.meta diff --git a/Assets/script/device/storage.meta b/Assets/GameLogic/Origin/device/storage.meta similarity index 100% rename from Assets/script/device/storage.meta rename to Assets/GameLogic/Origin/device/storage.meta diff --git a/Assets/script/device/storage/LocationStorageInfo.cs b/Assets/GameLogic/Origin/device/storage/LocationStorageInfo.cs similarity index 100% rename from Assets/script/device/storage/LocationStorageInfo.cs rename to Assets/GameLogic/Origin/device/storage/LocationStorageInfo.cs diff --git a/Assets/script/device/storage/LocationStorageInfo.cs.meta b/Assets/GameLogic/Origin/device/storage/LocationStorageInfo.cs.meta similarity index 100% rename from Assets/script/device/storage/LocationStorageInfo.cs.meta rename to Assets/GameLogic/Origin/device/storage/LocationStorageInfo.cs.meta diff --git a/Assets/script/device/storage/LocationStorageManage.cs b/Assets/GameLogic/Origin/device/storage/LocationStorageManage.cs similarity index 100% rename from Assets/script/device/storage/LocationStorageManage.cs rename to Assets/GameLogic/Origin/device/storage/LocationStorageManage.cs diff --git a/Assets/script/device/storage/LocationStorageManage.cs.meta b/Assets/GameLogic/Origin/device/storage/LocationStorageManage.cs.meta similarity index 100% rename from Assets/script/device/storage/LocationStorageManage.cs.meta rename to Assets/GameLogic/Origin/device/storage/LocationStorageManage.cs.meta diff --git a/Assets/script/event.meta b/Assets/GameLogic/Origin/event.meta similarity index 100% rename from Assets/script/event.meta rename to Assets/GameLogic/Origin/event.meta diff --git a/Assets/script/event/EventCompent.cs b/Assets/GameLogic/Origin/event/EventCompent.cs similarity index 100% rename from Assets/script/event/EventCompent.cs rename to Assets/GameLogic/Origin/event/EventCompent.cs diff --git a/Assets/script/event/EventCompent.cs.meta b/Assets/GameLogic/Origin/event/EventCompent.cs.meta similarity index 100% rename from Assets/script/event/EventCompent.cs.meta rename to Assets/GameLogic/Origin/event/EventCompent.cs.meta diff --git a/Assets/script/event/IMouseClick.cs b/Assets/GameLogic/Origin/event/IMouseClick.cs similarity index 100% rename from Assets/script/event/IMouseClick.cs rename to Assets/GameLogic/Origin/event/IMouseClick.cs diff --git a/Assets/script/event/IMouseClick.cs.meta b/Assets/GameLogic/Origin/event/IMouseClick.cs.meta similarity index 100% rename from Assets/script/event/IMouseClick.cs.meta rename to Assets/GameLogic/Origin/event/IMouseClick.cs.meta diff --git a/Assets/script/lib.meta b/Assets/GameLogic/Origin/lib.meta similarity index 100% rename from Assets/script/lib.meta rename to Assets/GameLogic/Origin/lib.meta diff --git a/Assets/script/lib/Best HTTP (Pro).meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro).meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro).meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro).meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Credentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Authentication/DigestStore.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheFileLock.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheMaintananceParams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Caching/HTTPCacheService.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/ConnectionBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/FileConnection.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Connections/WebGLConnection.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/Cookie.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Cookies/CookieJar.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/CRC32.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Deflate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/DeflateStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/GZipStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/InfTree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Inflate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZTree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/Zlib.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibBaseStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibCodec.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Decompression/ZlibConstants.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/BufferPoolMemoryStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/CircularBuffer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Extensions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/Future.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeaderValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/HeartbeatManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/KeyValuePairList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/ReadOnlyBufferedStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/VariableSizedBufferPool.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WWWAuthenticateHeaderParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Extensions/WriteOnlyBufferedStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFieldData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/HTTPFormUsage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPMultiPartForm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/HTTPUrlEncodedForm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Forms/Implementations/RawJSonForm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnection.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPConnectionStates.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPMethods.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProtocolFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/HTTPUpdateDelegator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/JSON/JSON.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/DefaultLogger.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Logger/ILogger.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/ObjectModel/ObservableDictionary.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/Collections/Specialized/NotifyCollectionChangedEventArgs.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/DefaultIOService.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/IIOService.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/NETFXCOREIOService.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/FileSystem/WebGLIOService.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/TcpClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/DataReaderWriterStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/PlatformSupport/TcpClient/WinRT/TcpClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SOCKSProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/License.txt.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ReflectionHelpers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1Generator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1OctetStringParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SequenceParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1SetParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1StreamParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ASN1TaggedObjectParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Encodable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1EncodableVector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Exception.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1InputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Null.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Object.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OctetString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1OutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1ParsingException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Sequence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Set.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1TaggedObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/Asn1Tags.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERBitString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BEROctetStringParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSequenceParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERSetParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BERTaggedObjectParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecific.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerApplicationSpecificParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerNull.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOctetString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSequence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerSet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/BerTaggedObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ConstructedOctetStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternal.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERExternalParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DEROctetStringParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSequenceParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DERSetParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DefiniteLengthInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerApplicationSpecific.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBMPString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBitString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerBoolean.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerEnumerated.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGeneralizedTime.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerGraphicString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerIA5String.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerInteger.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNull.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerNumericString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerObjectIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOctetString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerPrintableString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSequence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerSet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerStringBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerT61String.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerTaggedObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTCTime.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUTF8String.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerUniversalString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVideotexString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/DerVisibleString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1ApplicationSpecificParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Choice.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1Convertible.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IAsn1String.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/IndefiniteLengthInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyASN1InputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSequence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LazyDERSet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/LimitedInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/OidTokenizer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSINamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/anssi/ANSSIObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bc/BCObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/bsi/BsiObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CAKeyUpdAnnContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertConfirmContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertOrEncCert.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertRepMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CertifiedKeyPair.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/Challenge.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CmpObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/CrlAnnContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ErrorMsgContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenMsgContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/GenRepContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/InfoTypeAndValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/KeyRecRepContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/OobCertHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIBody.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIConfirmContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFailureInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIFreeText.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIHeaderBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIMessages.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PKIStatusInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PbmParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollRepContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PollReqContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyChallContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/PopoDecKeyRespContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/ProtectedPart.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevAnnContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevDetails.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevRepContentBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cmp/RevReqContent.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AttributeTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Attributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthEnvelopedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/AuthenticatedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSAttributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CMSObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/CompressedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ContentInfoParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedContentInfoParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EncryptedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/EnvelopedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Evidence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/IssuerAndSerialNumber.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KEKRecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyAgreeRecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/KeyTransRecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/MetaData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorIdentifierOrKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OriginatorPublicKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherKeyAttribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/OtherRevocationInfoFormat.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/PasswordRecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientEncryptedKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/RecipientKeyIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SCVPReqRes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/SignerInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/Time.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampAndCRL.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampTokenEvidence.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/TimeStampedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cms/ecc/MQVuserKeyingMaterial.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/AttributeTypeAndValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMessages.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertReqMsg.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CertTemplateBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/Controls.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/CrmfObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncKeyWithID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/EncryptedValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/OptionalValidity.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIArchiveOptions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKIPublicationInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PKMacValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoPrivKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/PopoSigningKeyInput.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/ProofOfPossession.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SinglePubInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/crmf/SubsequentMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/CryptoProObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410NamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/ECGOST3410ParamSetParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST28147Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410NamedParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410ParamSetParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/eac/EACObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/edec/EdECObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CertificateValues.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeIndication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CommitmentTypeQualifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteCertificateRefs.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CompleteRevocationRefs.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlListID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlOcspRef.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/CrlValidatedID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/ESFAttributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspListID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OcspResponsesID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherCertID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherHashAlgAndValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevRefs.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherRevVals.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/OtherSigningCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/RevocationValues.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SigPolicyQualifierInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignaturePolicyIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerAttribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/esf/SignerLocation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentHints.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ContentIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/ESSCertIDv2.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherCertID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/OtherSigningCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ess/SigningCertificateV2.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMNamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gm/GMObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/gnu/GNUObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/iana/IANAObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/CscaMasterList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/DataGroupHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/ICAOObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSSecurityObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/icao/LDSVersionInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ISISMTTObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/CertHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/ocsp/RequestedCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdditionalInformationSyntax.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/AdmissionSyntax.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Admissions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/DeclarationOfMajority.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/MonetaryLimit.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/NamingAuthority.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProcurationSyntax.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/ProfessionInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/isismtt/x509/Restriction.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/kisa/KISAObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/microsoft/MicrosoftObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/CAST5CBCParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/IDEACBCPar.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/MiscObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeCertType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/NetscapeRevocationURL.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/misc/VerisignCzagExtension.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/mozilla/PublicKeyAndChallenge.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTNamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/nist/NISTObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ntt/NTTObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/BasicOCSPResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CertStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/CrlID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/OCSPResponseStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Request.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponderID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseBytes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ResponseData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/RevokedInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/ServiceLocator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/Signature.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/SingleResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ocsp/TBSRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/ElGamalParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/oiw/OIWObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Attribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/AuthenticatedSafe.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertBag.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/CertificationRequestInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/ContentInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/DHParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptedPrivateKeyInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/EncryptionScheme.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/IssuerAndSerialNumber.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/KeyDerivationFunc.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/MacData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBEParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBES2Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PBKDF2Params.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCS12PBEParams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PKCSObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/Pfx.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/PrivateKeyInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RC2CBCParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAESOAEPparams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSAPrivateKeyStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/RSASSAPSSparams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SafeBag.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/pkcs/SignerInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/rosstandart/RosstandartObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/ECPrivateKeyStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECNamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/sec/SECObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEAttributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilitiesAttribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapability.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMECapabilityVector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/smime/SMIMEEncryptionKeyPreferenceAttribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTNamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/teletrust/TeleTrusTObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/Accuracy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/MessageImprint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TSTInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampReq.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/tsp/TimeStampResp.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/ua/UAObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/Asn1Dump.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/util/FilterStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x500/DirectoryString.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AccessDescription.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AlgorithmIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertIssuer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttCertValidityPeriod.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Attribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeCertificateInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AttributeTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityInformationAccess.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/AuthorityKeyIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/BasicConstraints.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLDistPoint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLNumber.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CRLReason.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertPolicyId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificateList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePair.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/CertificatePolicies.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DSAParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DigestInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DisplayText.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPoint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/DistributionPointName.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ExtendedKeyUsage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralName.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralNames.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/GeneralSubtree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Holder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IetfAttrSyntax.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuerSerial.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/IssuingDistributionPoint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyPurposeId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/KeyUsage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NameConstraints.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/NoticeReference.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ObjectDigestInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyMappings.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PolicyQualifierInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/PrivateKeyUsagePeriod.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RSAPublicKeyStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/ReasonFlags.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/RoleSyntax.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectDirectoryAttributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectKeyIdentifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/SubjectPublicKeyInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TBSCertificateStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Target.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/TargetInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Targets.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/Time.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/UserNotice.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V1TBSCertificateGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2AttributeCertificateInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2Form.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V2TBSCertListGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/V3TBSCertificateGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Attributes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509CertificateStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509DefaultEntryConverter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extension.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Extensions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ExtensionsGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509Name.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameEntryConverter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509NameTokenizer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/X509ObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/BiometricData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/ETSIQCObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/Iso4217CurrencyCode.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/MonetaryValue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/QCStatement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/RFC3739QCObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/SemanticsInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/qualified/TypeOfBiometricData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/NameOrPseudonym.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/PersonalData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x509/sigi/SigIObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHDomainParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHPublicKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/DHValidationParms.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/ECNamedCurveTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/KeySpecificInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/OtherInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962NamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X962Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECParametersHolder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ECPoint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9FieldID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9IntegerConverter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/asn1/x9/X9ObjectIdentifiers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/BaseDigestCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerationException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAttributeTableGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthEnvelopedGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedDataStreamGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSAuthenticatedGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSCompressedDataStreamGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSContentInfoParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedDataStreamGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSEnvelopedHelper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSPBEKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableByteArray.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableFile.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSProcessableInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSReadable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSecureReadable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedDataStreamGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSSignedHelper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSStreamException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSTypedStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CMSUtils.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/CounterSignatureDigestCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultAuthenticatedAttributeTableGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/DefaultSignedAttributeTableGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/IDigestCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KEKRecipientInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyAgreeRecipientInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/KeyTransRecipientInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/OriginatorInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2PBEKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PKCS5Scheme2UTF8PBEKey.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/PasswordRecipientInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/RecipientInformationStore.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerId.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInfoGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SignerInformationStore.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/cms/SimpleAttributeTableGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricCipherKeyPair.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/AsymmetricKeyParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAeadBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedAsymmetricBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedCipherBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedIesCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/BufferedStreamCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/Check.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CipherKeyGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/CryptoException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/DataLengthException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IAsymmetricCipherKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBlockResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IBufferedCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ICipherParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDSA.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationFunction.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDerivationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IDsaExt.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySource.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IEntropySourceProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRawAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IRsa.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignatureFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ISignerWithRecovery.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IStreamCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IVerifierFactoryProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IWrapper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/IXof.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/InvalidCipherTextException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/MaxBytesExceededException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/OutputLengthException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/PbeParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/StreamBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/DHStandardGroups.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHCBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECDHWithKdfBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/ECMqvWithKdfBasicAgreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/SM2KeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X25519Agreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/X448Agreement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeParticipant.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroup.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakePrimeOrderGroups.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound1Payload.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound2Payload.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeRound3Payload.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/jpake/JPakeUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ConcatenationKdfGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKdfParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/DHKekGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/kdf/ECDHKekGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Client.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Server.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6StandardGroups.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6Utilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/agreement/srp/SRP6VerifierGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2bDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Blake2sDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/DSTU7564Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_256Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GOST3411_2012_512Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/GeneralDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/KeccakDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/LongDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD2Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD4Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/MD5Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NonMemoableDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/NullDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD128Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD160Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD256Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/RipeMD320Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SHA3Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SM3Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha1Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha224Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha256Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha384Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512Digest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/Sha512tDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShakeDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/ShortenedDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/SkeinEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/TigerDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/digests/WhirlpoolDigest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/ec/CustomNamedCurves.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/ISO9796d1Encoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/OaepEncoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/encodings/Pkcs1Encoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesFastEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesLightEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/AesWrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/BlowfishEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaLightEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/CamelliaWrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast5Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Cast6Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaCha7539Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ChaChaEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEdeWrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/DesEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Dstu7624WrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ElGamalEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/GOST28147Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC128Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/HC256Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ISAACEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IdeaEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/IesEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NaccacheSternEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NoekeonEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/NullEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC2WrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC4Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC532Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC564Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RC6Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3211WrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RFC3394WrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindedEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSABlindingEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RSACoreEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RijndaelEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/RsaEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SEEDWrapEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM2Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SM4Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/Salsa20Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SerpentEngineBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/SkipjackEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TEAEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/ThreefishEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TnepresEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/TwofishEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/VMPCKSA3Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XSalsa20Engine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/engines/XTEAEngine.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BCrypt.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/BaseKdfBytesGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHBasicKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyGeneratorHelper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DHParametersHelper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesEdeKeyGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DesKeyGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/DsaParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ECKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed25519KeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Ed448KeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/ElGamalParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410KeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/GOST3410ParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/HKDFBytesGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf1BytesGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Kdf2BytesGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Mgf1BytesGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/NaccacheSternKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenBsdBCrypt.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/OpenSSLPBEParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs12ParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S1ParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Pkcs5S2ParametersGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/Poly1305KeyGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RSABlindingFactorGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/RsaKeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/SCrypt.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X25519KeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/generators/X448KeyPairGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/CipherStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestSink.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/DigestStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacSink.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/MacStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerSink.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/io/SignerStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CbcBlockCipherMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/CfbBlockCipherMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7564Mac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/DSTU7624Mac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/GOST28147Mac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/HMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/ISO9797Alg3Mac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/Poly1305.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SipHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/SkeinMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/macs/VMPCMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CbcBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CcmBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CfbBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/CtsBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/EAXBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GCMBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/GOFBBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/IAeadBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCcmBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/KCtrBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OCBBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OfbBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/OpenPgpCfbBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/SicBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmExponentiator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/BasicGcmMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/GcmUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmExponentiator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/IGcmMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables1kGcmExponentiator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables64kGcmMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/modes/gcm/Tables8kGcmMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/Asn1Signature.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultSignatureResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/operators/DefaultVerifierResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/BlockCipherPadding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO10126d2Padding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ISO7816d4Padding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/PaddedBufferedBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/Pkcs7Padding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/TbcPadding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/X923Padding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/paddings/ZeroBytePadding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/AEADParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/CcmParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHPublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DHValidationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DSAParameterGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesEdeParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DesParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaPublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/DsaValidationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECDomainParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ECPublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed25519PublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Ed448PublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ElGamalPublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410KeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410PublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/GOST3410ValidationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/HKDFParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ISO18033KDFParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/IesWithCipherParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KdfParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/KeyParameter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MgfParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPrivateParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/MqvPublicParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/NaccacheSternPrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithIV.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithRandom.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSBox.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/ParametersWithSalt.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC2Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RC5Parameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RSABlindingParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/RsaPrivateCrtKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePrivateParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SM2KeyExchangePublicParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/SkeinParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/Srp6GroupParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/TweakableBlockCipherParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X25519PublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448KeyGenerationParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PrivateKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/parameters/X448PublicKeyParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/BasicEntropySourceProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiEntropySourceProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/CryptoApiRandomGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/DigestRandomGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/EntropyUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IDrbgProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/IRandomGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ReversedWindowGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandom.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/SP800SecureRandomBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/ThreadedSeedGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/VMPCRandomGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931Rng.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandom.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/X931SecureRandomBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/CtrSP800Drbg.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/DrbgUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HMacSP800Drbg.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/HashSP800Drbg.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/prng/drbg/ISP80090Drbg.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaDigestSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/DsaSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECDsaSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECGOST3410Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/ECNRSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519ctxSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed25519phSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Ed448phSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410DigestSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GOST3410Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/GenericSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/HMacDsaKCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaEncoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IDsaKCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2PssSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/Iso9796d2Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/IsoTrailers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PlainDsaEncoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/PssSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RandomDsaKCalculator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/RsaDigestSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/SM2Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/StandardDsaEncoding.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/signers/X931Signer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsAgreementCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCipherFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsContext.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsEncryptionCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsPeer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsServer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AbstractTlsSignerCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertDescription.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlertLevel.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/AlwaysValidVerifyer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BasicTlsPskIdentity.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/BulkCipherAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueue.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ByteQueueStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertChainType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Certificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateStatusType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CertificateUrl.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Chacha20Poly1305.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ChangeCipherSpec.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherSuite.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CipherType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientAuthenticationType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ClientCertificateType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CombinedHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/CompressionMethod.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ConnectionEnd.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ContentType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DatagramTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsAgreementCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsCipherFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsDHVerifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsEncryptionCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsServer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSignerCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DefaultTlsSrpGroupVerifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DeferredHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigestInputBuffer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DigitallySigned.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsClientProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsEpoch.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsHandshakeRetransmit.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReassembler.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsRecordLayer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReliableHandshake.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsReplayWindow.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsServerProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/DtlsTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECBasisType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECCurveType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ECPointFormat.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/EncryptionAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExporterLabel.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ExtensionType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/FiniteFieldDheGroup.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HandshakeType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HashAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatExtension.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMessageType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/HeartbeatMode.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ICertificateVerifyer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/KeyExchangeAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsAuthentication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/LegacyTlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MacAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/MaxFragmentLength.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NameType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NamedCurve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/NewSessionTicket.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/OcspStatusRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PrfAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ProtocolVersion.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/PskTlsServer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/RecordStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SecurityParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerDHParams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerName.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerNameList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerOnlyTlsAuthentication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/ServerSrpParams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SessionParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignatureAndHashAlgorithm.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SignerInputBuffer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SimulatedTlsSrpIdentityManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrpTlsServer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SrtpProtectionProfile.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/Ssl3Mac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataEntry.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/SupplementalDataType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAeadCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAgreementCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsAuthentication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsBlockCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCipherFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClient.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContext.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientContextImpl.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsClientProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCompression.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsContext.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDHVerifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDeflateCompression.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDheKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDsaSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsDssSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDHKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDheKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsECDsaSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEccUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsEncryptionCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsExtensionsUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlert.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsFatalAlertReceived.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsHandshakeHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsMac.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNoCloseNotifyException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsNullCompression.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPeer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsProtocolHandler.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentity.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskIdentityManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsPskKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsRsaUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContext.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerContextImpl.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsServerProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSession.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSessionImpl.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSigner.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSignerCredentials.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpGroupVerifier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpIdentityManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpKeyExchange.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpLoginParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrpUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsSrtpUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsStreamCipher.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/TlsUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UrlAndHash.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UseSrtpData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/tls/UserMappingType.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/crypto/util/Pack.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/BigInteger.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/Primes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECAlgorithms.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECCurve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECFieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECLookupTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPoint.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ECPointMap.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/LongArray.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleXPointMap.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/ScaleYPointMap.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/SimpleLookupTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/SimpleBigDecimal.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/Tnaf.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/abc/ZTauElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/djb/Curve25519Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/gm/SM2P256V1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP128R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP160R2Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP192R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP224R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP256R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP384R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecP521R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT113R2Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT131R2Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT163R2Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT193R2Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT233R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT239K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT283R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT409R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571FieldElement.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571K1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Curve.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/custom/sec/SecT571R1Point.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/ECEndomorphism.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvEndomorphism.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBEndomorphism.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/endo/GlvTypeBParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/AbstractECMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/DoubleAddMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ECMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointCombMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointPreCompInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/FixedPointUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/GlvMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/IPreCompCallback.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MixedNafR2LMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/MontgomeryLadderMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafL2RMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/NafR2LMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/PreCompInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ReferenceMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ValidityPreCompInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafL2RMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafPreCompInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WNafUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/WTauNafPreCompInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitL2RMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/multiplier/ZSignedDigitR2LMultiplier.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X25519Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc7748/X448Field.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed25519.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/ec/rfc8032/Ed448.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/FiniteFields.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GF2Polynomial.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/GenericPolynomialExtensionField.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IExtensionField.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IFiniteField.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomial.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/IPolynomialExtensionField.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/field/PrimeField.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Interleave.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Mod.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat128.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat160.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat192.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat224.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat256.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat320.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat384.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat448.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat512.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/math/raw/Nat576.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPResp.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/BasicOCSPRespGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/CertificateStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReq.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPReqGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPResp.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPRespStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/OCSPUtil.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/Req.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RespID.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/RevokedStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/SingleResp.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/ocsp/UnknownStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/EncryptionException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/IPasswordFinder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/MiscPemGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMReader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PEMWriter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/PasswordException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/openssl/Pkcs8Generator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/AsymmetricKeyEntry.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/EncryptedPrivateKeyInfoFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PKCS12StoreBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs10CertificationRequestDelaySigned.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Entry.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Store.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/Pkcs12Utilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/PrivateKeyInfoFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkcs/X509CertificateEntry.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/CertStatus.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertChecker.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixAttrCertPathValidator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixBuilderParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPath.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathBuilderResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathChecker.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCertPathValidatorUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixCrlUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixNameConstraintValidatorException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/PkixPolicyNode.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/ReasonsMask.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3280CertPathUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/Rfc3281CertPathUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/pkix/TrustAnchor.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/AgreementUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/CipherUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DigestUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/DotNetUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneralSecurityException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/GeneratorUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidKeyException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/InvalidParameterException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/KeyException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/MacUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/NoSuchAlgorithmException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/ParameterUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PbeUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PrivateKeyFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/PublicKeyFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecureRandom.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SecurityUtilityException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignatureException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/SignerUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/WrapperUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateEncodingException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateExpiredException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateNotYetValidException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CertificateParsingException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/security/cert/CrlException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/GenTimeAccuracy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPAlgorithms.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPUtil.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TSPValidationException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequest.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampRequestGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampResponseGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampToken.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/tsp/TimeStampTokenInfo.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Arrays.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/BigIntegers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Enums.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/IMemoable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Integers.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/MemoableResetException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Platform.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Strings.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/Times.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/TypeExtensions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/CollectionUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EmptyEnumerable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/EnumerableProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/HashSet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/ISet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/LinkedDictionary.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionary.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableDictionaryProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableList.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableListProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/collections/UnmodifiableSetProxy.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/date/DateTimeUtilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Base64Encoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedDecoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/BufferedEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Hex.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/HexTranslator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/IEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/Translator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/encoders/UrlBase64Encoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/BaseOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/FilterStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/NullOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/PushbackStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/StreamOverflowException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/Streams.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/TeeOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemGenerationException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemHeader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObject.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemObjectParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemReader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/io/pem/PemWriter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/net/IPAddress.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Adler32.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Deflate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfBlocks.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfCodes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/InfTree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/Inflate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/JZlib.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/StaticTree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZDeflaterOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInflaterInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZInputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZOutputStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/util/zlib/ZTree.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateHolder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/AttributeCertificateIssuer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509AttributeCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/IX509Extension.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PEMParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/PrincipalUtil.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/SubjectPublicKeyInfoFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509AttrCertParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Attribute.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertPairParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Certificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificatePair.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CertificateParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Crl.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlEntry.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509CrlParser.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509ExtensionBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509KeyUsage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509SignatureUtil.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509Utilities.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V1CertificateGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificate.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2AttributeCertificateGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V2CRLGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/X509V3CertificateGenerator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/AuthorityKeyIdentifierStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/SubjectKeyIdentifierStructure.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/extension/X509ExtensionUtil.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Selector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509Store.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/IX509StoreParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/NoSuchStoreException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509AttrCertStoreSelector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertPairStoreSelector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CertStoreSelector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStore.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CollectionStoreParameters.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509CrlStoreSelector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SecureProtocol/x509/store/X509StoreFactory.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSource.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/EventSourceResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/ServerSentEvents/Message.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Authentication/IAuthenticationProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Connection.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Enums.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/Hub.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Hubs/IHub.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/DefaultJsonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/JsonEncoders/IJsonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ClientMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/IServerMessage.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Messages/ServerMessages.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/NegotiationData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PollingTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/PostSendTransportBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/ServerSentEventsTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/TransportBase.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalR/Transports/WebSocketTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Authentication/DefaultAccessTokenAuthenticator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HelperClasses.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/HubConnection.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/IAuthenticationProvider.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/JsonProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Invocation.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/Message.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Messages/NegotiationResult.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SignalRCore/Transports/WebsocketTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Enums.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Error.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventDescriptor.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventNames.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Events/EventTable.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/HandshakeData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Interfaces.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/DefaultJSonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/JsonEncoders/IJSonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Packet.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Socket.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketManager.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/SocketOptions.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/ITransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/PollingTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/SocketIO/Transports/WebSocketTransport.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/Statistics/Statistics.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/IExtension.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Extensions/PerMessageCompression.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrame.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameReader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/Frames/WebSocketFrameTypes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocket.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketResponse.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTP/WebSocket/WebSocketStatusCodes.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf diff --git a/Assets/script/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/BestHTTPDocumentationEN.pdf.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/AssetBundleSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/LargeFileDownloadSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/TextureDownloadSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/HTTP/UploadStream.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Helpers.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Helpers.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Helpers/GUIHelper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/IJsonWrapper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonData.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonException.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMapper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonMockWrapper.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonReader.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/JsonWriter.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/Lexer.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/LitJson/ParserToken.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Plugin.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Plugin.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Plugin/CacheMaintenanceSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.unity b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.unity similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.unity rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.unity diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.unity.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.unity.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SampleSelector.unity.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SampleSelector.unity.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleCookieAuthentication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Authentication Providers/SampleHeaderAuthentication.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/AuthenticationSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionAPISample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/ConnectionStatusSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/DemoHubSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/JSonDotnetEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/Json Encoders/LitJsonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalR/SimpleStreamingSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Authentication Providers/HeaderAuthenticator.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/JsonDotNetEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/LitJsonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/Encoders/MessagePackProtocol.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithAuthorization.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/HubWithPreAuthorizationSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/RedirectSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SignalRCore/TestHubExample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/JsonDotNetEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIO Json Encoders/LitJsonEncoder.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOChatSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/SocketIO/SocketIOWePlaySample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Websocket.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Websocket.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs diff --git a/Assets/script/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Examples/Websocket/WebSocketSample.cs.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_EventSource.jslib.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebRequest.jslib.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib diff --git a/Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Plugins/WebGL/BestHTTP_WebSocket.jslib.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/ReleaseNotes.txt b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/ReleaseNotes.txt similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/ReleaseNotes.txt rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/ReleaseNotes.txt diff --git a/Assets/script/lib/Best HTTP (Pro)/ReleaseNotes.txt.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/ReleaseNotes.txt.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/ReleaseNotes.txt.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/ReleaseNotes.txt.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 2017.2 and up - Editor.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 2017.2 and up - Editor.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 2017.2 and up - Editor.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 2017.2 and up - Editor.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 2017.2 and up - UWP.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 2017.2 and up - UWP.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 2017.2 and up - UWP.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 2017.2 and up - UWP.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - Editor.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - Editor.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - Editor.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - Editor.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - General.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - General.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - General.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - General.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - UWP.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - UWP.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - UWP.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - UWP.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - WebGL.csproj.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - WebGL.csproj.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/Unity 5.x and up - WebGL.csproj.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/Unity 5.x and up - WebGL.csproj.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/license.txt b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/license.txt similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/license.txt rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/license.txt diff --git a/Assets/script/lib/Best HTTP (Pro)/license.txt.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/license.txt.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/license.txt.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/license.txt.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/link.xml b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link.xml similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/link.xml rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link.xml diff --git a/Assets/script/lib/Best HTTP (Pro)/link.xml.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link.xml.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/link.xml.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link.xml.meta diff --git a/Assets/script/lib/Best HTTP (Pro)/link_android_subset.xml b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link_android_subset.xml similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/link_android_subset.xml rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link_android_subset.xml diff --git a/Assets/script/lib/Best HTTP (Pro)/link_android_subset.xml.meta b/Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link_android_subset.xml.meta similarity index 100% rename from Assets/script/lib/Best HTTP (Pro)/link_android_subset.xml.meta rename to Assets/GameLogic/Origin/lib/Best HTTP (Pro)/link_android_subset.xml.meta diff --git a/Assets/script/lib/EasyInject.meta b/Assets/GameLogic/Origin/lib/EasyInject.meta similarity index 100% rename from Assets/script/lib/EasyInject.meta rename to Assets/GameLogic/Origin/lib/EasyInject.meta diff --git a/Assets/script/lib/EasyInject/Attributes.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes.meta diff --git a/Assets/script/lib/EasyInject/Attributes/AutowiredAttribute.cs b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/AutowiredAttribute.cs similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/AutowiredAttribute.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/AutowiredAttribute.cs diff --git a/Assets/script/lib/EasyInject/Attributes/AutowiredAttribute.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/AutowiredAttribute.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/AutowiredAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/AutowiredAttribute.cs.meta diff --git a/Assets/script/lib/EasyInject/Attributes/BeanNameAttribute.cs b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/BeanNameAttribute.cs similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/BeanNameAttribute.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/BeanNameAttribute.cs diff --git a/Assets/script/lib/EasyInject/Attributes/BeanNameAttribute.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/BeanNameAttribute.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/BeanNameAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/BeanNameAttribute.cs.meta diff --git a/Assets/script/lib/EasyInject/Attributes/ComponentAttribute.cs b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/ComponentAttribute.cs similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/ComponentAttribute.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/ComponentAttribute.cs diff --git a/Assets/script/lib/EasyInject/Attributes/ComponentAttribute.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/ComponentAttribute.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/ComponentAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/ComponentAttribute.cs.meta diff --git a/Assets/script/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs diff --git a/Assets/script/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/GameObjectBeanAttribute.cs.meta diff --git a/Assets/script/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs diff --git a/Assets/script/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Attributes/PersistAcrossScenesAttribute.cs.meta diff --git a/Assets/script/lib/EasyInject/Behaviours.meta b/Assets/GameLogic/Origin/lib/EasyInject/Behaviours.meta similarity index 100% rename from Assets/script/lib/EasyInject/Behaviours.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Behaviours.meta diff --git a/Assets/script/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs b/Assets/GameLogic/Origin/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs similarity index 100% rename from Assets/script/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs diff --git a/Assets/script/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Behaviours/AcrossScenesBeanObject.cs.meta diff --git a/Assets/script/lib/EasyInject/Behaviours/BeanObject.cs b/Assets/GameLogic/Origin/lib/EasyInject/Behaviours/BeanObject.cs similarity index 100% rename from Assets/script/lib/EasyInject/Behaviours/BeanObject.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Behaviours/BeanObject.cs diff --git a/Assets/script/lib/EasyInject/Behaviours/BeanObject.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Behaviours/BeanObject.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Behaviours/BeanObject.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Behaviours/BeanObject.cs.meta diff --git a/Assets/script/lib/EasyInject/Controllers.meta b/Assets/GameLogic/Origin/lib/EasyInject/Controllers.meta similarity index 100% rename from Assets/script/lib/EasyInject/Controllers.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Controllers.meta diff --git a/Assets/script/lib/EasyInject/Controllers/GlobalInitializer.cs b/Assets/GameLogic/Origin/lib/EasyInject/Controllers/GlobalInitializer.cs similarity index 100% rename from Assets/script/lib/EasyInject/Controllers/GlobalInitializer.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Controllers/GlobalInitializer.cs diff --git a/Assets/script/lib/EasyInject/Controllers/GlobalInitializer.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Controllers/GlobalInitializer.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Controllers/GlobalInitializer.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Controllers/GlobalInitializer.cs.meta diff --git a/Assets/script/lib/EasyInject/Models.meta b/Assets/GameLogic/Origin/lib/EasyInject/Models.meta similarity index 100% rename from Assets/script/lib/EasyInject/Models.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Models.meta diff --git a/Assets/script/lib/EasyInject/Models/BeanInfo.cs b/Assets/GameLogic/Origin/lib/EasyInject/Models/BeanInfo.cs similarity index 100% rename from Assets/script/lib/EasyInject/Models/BeanInfo.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Models/BeanInfo.cs diff --git a/Assets/script/lib/EasyInject/Models/BeanInfo.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Models/BeanInfo.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Models/BeanInfo.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Models/BeanInfo.cs.meta diff --git a/Assets/script/lib/EasyInject/Models/ShelvedInstance.cs b/Assets/GameLogic/Origin/lib/EasyInject/Models/ShelvedInstance.cs similarity index 100% rename from Assets/script/lib/EasyInject/Models/ShelvedInstance.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Models/ShelvedInstance.cs diff --git a/Assets/script/lib/EasyInject/Models/ShelvedInstance.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Models/ShelvedInstance.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Models/ShelvedInstance.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Models/ShelvedInstance.cs.meta diff --git a/Assets/script/lib/EasyInject/Readme.md b/Assets/GameLogic/Origin/lib/EasyInject/Readme.md similarity index 100% rename from Assets/script/lib/EasyInject/Readme.md rename to Assets/GameLogic/Origin/lib/EasyInject/Readme.md diff --git a/Assets/script/lib/EasyInject/Readme.md.meta b/Assets/GameLogic/Origin/lib/EasyInject/Readme.md.meta similarity index 100% rename from Assets/script/lib/EasyInject/Readme.md.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Readme.md.meta diff --git a/Assets/script/lib/EasyInject/Utils.meta b/Assets/GameLogic/Origin/lib/EasyInject/Utils.meta similarity index 100% rename from Assets/script/lib/EasyInject/Utils.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Utils.meta diff --git a/Assets/script/lib/EasyInject/Utils/IIoC.cs b/Assets/GameLogic/Origin/lib/EasyInject/Utils/IIoC.cs similarity index 100% rename from Assets/script/lib/EasyInject/Utils/IIoC.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Utils/IIoC.cs diff --git a/Assets/script/lib/EasyInject/Utils/IIoC.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Utils/IIoC.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Utils/IIoC.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Utils/IIoC.cs.meta diff --git a/Assets/script/lib/EasyInject/Utils/MyIoC.cs b/Assets/GameLogic/Origin/lib/EasyInject/Utils/MyIoC.cs similarity index 100% rename from Assets/script/lib/EasyInject/Utils/MyIoC.cs rename to Assets/GameLogic/Origin/lib/EasyInject/Utils/MyIoC.cs diff --git a/Assets/script/lib/EasyInject/Utils/MyIoC.cs.meta b/Assets/GameLogic/Origin/lib/EasyInject/Utils/MyIoC.cs.meta similarity index 100% rename from Assets/script/lib/EasyInject/Utils/MyIoC.cs.meta rename to Assets/GameLogic/Origin/lib/EasyInject/Utils/MyIoC.cs.meta diff --git a/Assets/script/lib/EasyInject/[中文]Readme.md b/Assets/GameLogic/Origin/lib/EasyInject/[中文]Readme.md similarity index 100% rename from Assets/script/lib/EasyInject/[中文]Readme.md rename to Assets/GameLogic/Origin/lib/EasyInject/[中文]Readme.md diff --git a/Assets/script/lib/EasyInject/[中文]Readme.md.meta b/Assets/GameLogic/Origin/lib/EasyInject/[中文]Readme.md.meta similarity index 100% rename from Assets/script/lib/EasyInject/[中文]Readme.md.meta rename to Assets/GameLogic/Origin/lib/EasyInject/[中文]Readme.md.meta diff --git a/Assets/script/network.meta b/Assets/GameLogic/Origin/network.meta similarity index 100% rename from Assets/script/network.meta rename to Assets/GameLogic/Origin/network.meta diff --git a/Assets/script/network/AbstractWebSocketChannle.cs b/Assets/GameLogic/Origin/network/AbstractWebSocketChannle.cs similarity index 100% rename from Assets/script/network/AbstractWebSocketChannle.cs rename to Assets/GameLogic/Origin/network/AbstractWebSocketChannle.cs diff --git a/Assets/script/network/AbstractWebSocketChannle.cs.meta b/Assets/GameLogic/Origin/network/AbstractWebSocketChannle.cs.meta similarity index 100% rename from Assets/script/network/AbstractWebSocketChannle.cs.meta rename to Assets/GameLogic/Origin/network/AbstractWebSocketChannle.cs.meta diff --git a/Assets/script/network/HttpExtensions.cs b/Assets/GameLogic/Origin/network/HttpExtensions.cs similarity index 100% rename from Assets/script/network/HttpExtensions.cs rename to Assets/GameLogic/Origin/network/HttpExtensions.cs diff --git a/Assets/script/network/HttpExtensions.cs.meta b/Assets/GameLogic/Origin/network/HttpExtensions.cs.meta similarity index 100% rename from Assets/script/network/HttpExtensions.cs.meta rename to Assets/GameLogic/Origin/network/HttpExtensions.cs.meta diff --git a/Assets/script/network/IStorageSocketDataHandle.cs b/Assets/GameLogic/Origin/network/IStorageSocketDataHandle.cs similarity index 100% rename from Assets/script/network/IStorageSocketDataHandle.cs rename to Assets/GameLogic/Origin/network/IStorageSocketDataHandle.cs diff --git a/Assets/script/network/IStorageSocketDataHandle.cs.meta b/Assets/GameLogic/Origin/network/IStorageSocketDataHandle.cs.meta similarity index 100% rename from Assets/script/network/IStorageSocketDataHandle.cs.meta rename to Assets/GameLogic/Origin/network/IStorageSocketDataHandle.cs.meta diff --git a/Assets/script/network/IWcsSocketDataHandle.cs b/Assets/GameLogic/Origin/network/IWcsSocketDataHandle.cs similarity index 100% rename from Assets/script/network/IWcsSocketDataHandle.cs rename to Assets/GameLogic/Origin/network/IWcsSocketDataHandle.cs diff --git a/Assets/script/network/IWcsSocketDataHandle.cs.meta b/Assets/GameLogic/Origin/network/IWcsSocketDataHandle.cs.meta similarity index 100% rename from Assets/script/network/IWcsSocketDataHandle.cs.meta rename to Assets/GameLogic/Origin/network/IWcsSocketDataHandle.cs.meta diff --git a/Assets/script/network/IWebSocketChannle.cs b/Assets/GameLogic/Origin/network/IWebSocketChannle.cs similarity index 100% rename from Assets/script/network/IWebSocketChannle.cs rename to Assets/GameLogic/Origin/network/IWebSocketChannle.cs diff --git a/Assets/script/network/IWebSocketChannle.cs.meta b/Assets/GameLogic/Origin/network/IWebSocketChannle.cs.meta similarity index 100% rename from Assets/script/network/IWebSocketChannle.cs.meta rename to Assets/GameLogic/Origin/network/IWebSocketChannle.cs.meta diff --git a/Assets/script/network/NetWorkComponent.cs b/Assets/GameLogic/Origin/network/NetWorkComponent.cs similarity index 100% rename from Assets/script/network/NetWorkComponent.cs rename to Assets/GameLogic/Origin/network/NetWorkComponent.cs diff --git a/Assets/script/network/NetWorkComponent.cs.meta b/Assets/GameLogic/Origin/network/NetWorkComponent.cs.meta similarity index 100% rename from Assets/script/network/NetWorkComponent.cs.meta rename to Assets/GameLogic/Origin/network/NetWorkComponent.cs.meta diff --git a/Assets/script/network/WcsWebSocket.cs b/Assets/GameLogic/Origin/network/WcsWebSocket.cs similarity index 100% rename from Assets/script/network/WcsWebSocket.cs rename to Assets/GameLogic/Origin/network/WcsWebSocket.cs diff --git a/Assets/script/network/WcsWebSocket.cs.meta b/Assets/GameLogic/Origin/network/WcsWebSocket.cs.meta similarity index 100% rename from Assets/script/network/WcsWebSocket.cs.meta rename to Assets/GameLogic/Origin/network/WcsWebSocket.cs.meta diff --git a/Assets/script/network/WebSocketChannleKey.cs b/Assets/GameLogic/Origin/network/WebSocketChannleKey.cs similarity index 100% rename from Assets/script/network/WebSocketChannleKey.cs rename to Assets/GameLogic/Origin/network/WebSocketChannleKey.cs diff --git a/Assets/script/network/WebSocketChannleKey.cs.meta b/Assets/GameLogic/Origin/network/WebSocketChannleKey.cs.meta similarity index 100% rename from Assets/script/network/WebSocketChannleKey.cs.meta rename to Assets/GameLogic/Origin/network/WebSocketChannleKey.cs.meta diff --git a/Assets/script/network/WebSocketManage.cs b/Assets/GameLogic/Origin/network/WebSocketManage.cs similarity index 100% rename from Assets/script/network/WebSocketManage.cs rename to Assets/GameLogic/Origin/network/WebSocketManage.cs diff --git a/Assets/script/network/WebSocketManage.cs.meta b/Assets/GameLogic/Origin/network/WebSocketManage.cs.meta similarity index 100% rename from Assets/script/network/WebSocketManage.cs.meta rename to Assets/GameLogic/Origin/network/WebSocketManage.cs.meta diff --git a/Assets/script/network/WmsStorageWebsocket.cs b/Assets/GameLogic/Origin/network/WmsStorageWebsocket.cs similarity index 100% rename from Assets/script/network/WmsStorageWebsocket.cs rename to Assets/GameLogic/Origin/network/WmsStorageWebsocket.cs diff --git a/Assets/script/network/WmsStorageWebsocket.cs.meta b/Assets/GameLogic/Origin/network/WmsStorageWebsocket.cs.meta similarity index 100% rename from Assets/script/network/WmsStorageWebsocket.cs.meta rename to Assets/GameLogic/Origin/network/WmsStorageWebsocket.cs.meta diff --git a/Assets/script/setting.meta b/Assets/GameLogic/Origin/setting.meta similarity index 100% rename from Assets/script/setting.meta rename to Assets/GameLogic/Origin/setting.meta diff --git a/Assets/script/setting/BackendSystemSetting.cs b/Assets/GameLogic/Origin/setting/BackendSystemSetting.cs similarity index 100% rename from Assets/script/setting/BackendSystemSetting.cs rename to Assets/GameLogic/Origin/setting/BackendSystemSetting.cs diff --git a/Assets/script/setting/BackendSystemSetting.cs.meta b/Assets/GameLogic/Origin/setting/BackendSystemSetting.cs.meta similarity index 100% rename from Assets/script/setting/BackendSystemSetting.cs.meta rename to Assets/GameLogic/Origin/setting/BackendSystemSetting.cs.meta diff --git a/Assets/script/setting/GlobalConfig.cs b/Assets/GameLogic/Origin/setting/GlobalConfig.cs similarity index 100% rename from Assets/script/setting/GlobalConfig.cs rename to Assets/GameLogic/Origin/setting/GlobalConfig.cs diff --git a/Assets/script/setting/GlobalConfig.cs.meta b/Assets/GameLogic/Origin/setting/GlobalConfig.cs.meta similarity index 100% rename from Assets/script/setting/GlobalConfig.cs.meta rename to Assets/GameLogic/Origin/setting/GlobalConfig.cs.meta diff --git a/Assets/script/setting/ISetting.cs b/Assets/GameLogic/Origin/setting/ISetting.cs similarity index 100% rename from Assets/script/setting/ISetting.cs rename to Assets/GameLogic/Origin/setting/ISetting.cs diff --git a/Assets/script/setting/ISetting.cs.meta b/Assets/GameLogic/Origin/setting/ISetting.cs.meta similarity index 100% rename from Assets/script/setting/ISetting.cs.meta rename to Assets/GameLogic/Origin/setting/ISetting.cs.meta diff --git a/Assets/script/setting/WebGlSetting.cs b/Assets/GameLogic/Origin/setting/WebGlSetting.cs similarity index 100% rename from Assets/script/setting/WebGlSetting.cs rename to Assets/GameLogic/Origin/setting/WebGlSetting.cs diff --git a/Assets/script/setting/WebGlSetting.cs.meta b/Assets/GameLogic/Origin/setting/WebGlSetting.cs.meta similarity index 100% rename from Assets/script/setting/WebGlSetting.cs.meta rename to Assets/GameLogic/Origin/setting/WebGlSetting.cs.meta diff --git a/Assets/script/shader.meta b/Assets/GameLogic/Origin/shader.meta similarity index 100% rename from Assets/script/shader.meta rename to Assets/GameLogic/Origin/shader.meta diff --git a/Assets/script/shader/AlarmFlash.shader b/Assets/GameLogic/Origin/shader/AlarmFlash.shader similarity index 100% rename from Assets/script/shader/AlarmFlash.shader rename to Assets/GameLogic/Origin/shader/AlarmFlash.shader diff --git a/Assets/script/shader/AlarmFlash.shader.meta b/Assets/GameLogic/Origin/shader/AlarmFlash.shader.meta similarity index 100% rename from Assets/script/shader/AlarmFlash.shader.meta rename to Assets/GameLogic/Origin/shader/AlarmFlash.shader.meta diff --git a/Assets/script/source.meta b/Assets/GameLogic/Origin/source.meta similarity index 100% rename from Assets/script/source.meta rename to Assets/GameLogic/Origin/source.meta diff --git a/Assets/script/source/AddressableLoader.cs b/Assets/GameLogic/Origin/source/AddressableLoader.cs similarity index 100% rename from Assets/script/source/AddressableLoader.cs rename to Assets/GameLogic/Origin/source/AddressableLoader.cs diff --git a/Assets/script/source/AddressableLoader.cs.meta b/Assets/GameLogic/Origin/source/AddressableLoader.cs.meta similarity index 100% rename from Assets/script/source/AddressableLoader.cs.meta rename to Assets/GameLogic/Origin/source/AddressableLoader.cs.meta diff --git a/Assets/script/source/ISourceLoader.cs b/Assets/GameLogic/Origin/source/ISourceLoader.cs similarity index 100% rename from Assets/script/source/ISourceLoader.cs rename to Assets/GameLogic/Origin/source/ISourceLoader.cs diff --git a/Assets/script/source/ISourceLoader.cs.meta b/Assets/GameLogic/Origin/source/ISourceLoader.cs.meta similarity index 100% rename from Assets/script/source/ISourceLoader.cs.meta rename to Assets/GameLogic/Origin/source/ISourceLoader.cs.meta diff --git a/Assets/script/source/SourceComponent.cs b/Assets/GameLogic/Origin/source/SourceComponent.cs similarity index 100% rename from Assets/script/source/SourceComponent.cs rename to Assets/GameLogic/Origin/source/SourceComponent.cs diff --git a/Assets/script/source/SourceComponent.cs.meta b/Assets/GameLogic/Origin/source/SourceComponent.cs.meta similarity index 100% rename from Assets/script/source/SourceComponent.cs.meta rename to Assets/GameLogic/Origin/source/SourceComponent.cs.meta diff --git a/Assets/script/ui.meta b/Assets/GameLogic/Origin/ui.meta similarity index 100% rename from Assets/script/ui.meta rename to Assets/GameLogic/Origin/ui.meta diff --git a/Assets/script/ui/IUIView.cs b/Assets/GameLogic/Origin/ui/IUIView.cs similarity index 100% rename from Assets/script/ui/IUIView.cs rename to Assets/GameLogic/Origin/ui/IUIView.cs diff --git a/Assets/script/ui/IUIView.cs.meta b/Assets/GameLogic/Origin/ui/IUIView.cs.meta similarity index 100% rename from Assets/script/ui/IUIView.cs.meta rename to Assets/GameLogic/Origin/ui/IUIView.cs.meta diff --git a/Assets/script/ui/UILoading.cs b/Assets/GameLogic/Origin/ui/UILoading.cs similarity index 100% rename from Assets/script/ui/UILoading.cs rename to Assets/GameLogic/Origin/ui/UILoading.cs diff --git a/Assets/script/ui/UILoading.cs.meta b/Assets/GameLogic/Origin/ui/UILoading.cs.meta similarity index 100% rename from Assets/script/ui/UILoading.cs.meta rename to Assets/GameLogic/Origin/ui/UILoading.cs.meta diff --git a/Assets/script/ui/UIManage.cs b/Assets/GameLogic/Origin/ui/UIManage.cs similarity index 100% rename from Assets/script/ui/UIManage.cs rename to Assets/GameLogic/Origin/ui/UIManage.cs diff --git a/Assets/script/ui/UIManage.cs.meta b/Assets/GameLogic/Origin/ui/UIManage.cs.meta similarity index 100% rename from Assets/script/ui/UIManage.cs.meta rename to Assets/GameLogic/Origin/ui/UIManage.cs.meta diff --git a/Assets/script/ui/button.meta b/Assets/GameLogic/Origin/ui/button.meta similarity index 100% rename from Assets/script/ui/button.meta rename to Assets/GameLogic/Origin/ui/button.meta diff --git a/Assets/script/ui/button/AutoRotationButton.cs b/Assets/GameLogic/Origin/ui/button/AutoRotationButton.cs similarity index 100% rename from Assets/script/ui/button/AutoRotationButton.cs rename to Assets/GameLogic/Origin/ui/button/AutoRotationButton.cs diff --git a/Assets/script/ui/button/AutoRotationButton.cs.meta b/Assets/GameLogic/Origin/ui/button/AutoRotationButton.cs.meta similarity index 100% rename from Assets/script/ui/button/AutoRotationButton.cs.meta rename to Assets/GameLogic/Origin/ui/button/AutoRotationButton.cs.meta diff --git a/Assets/script/ui/button/FoldAndPutAwayButton.cs b/Assets/GameLogic/Origin/ui/button/FoldAndPutAwayButton.cs similarity index 100% rename from Assets/script/ui/button/FoldAndPutAwayButton.cs rename to Assets/GameLogic/Origin/ui/button/FoldAndPutAwayButton.cs diff --git a/Assets/script/ui/button/FoldAndPutAwayButton.cs.meta b/Assets/GameLogic/Origin/ui/button/FoldAndPutAwayButton.cs.meta similarity index 100% rename from Assets/script/ui/button/FoldAndPutAwayButton.cs.meta rename to Assets/GameLogic/Origin/ui/button/FoldAndPutAwayButton.cs.meta diff --git a/Assets/script/ui/button/FullScreenButton.cs b/Assets/GameLogic/Origin/ui/button/FullScreenButton.cs similarity index 100% rename from Assets/script/ui/button/FullScreenButton.cs rename to Assets/GameLogic/Origin/ui/button/FullScreenButton.cs diff --git a/Assets/script/ui/button/FullScreenButton.cs.meta b/Assets/GameLogic/Origin/ui/button/FullScreenButton.cs.meta similarity index 100% rename from Assets/script/ui/button/FullScreenButton.cs.meta rename to Assets/GameLogic/Origin/ui/button/FullScreenButton.cs.meta diff --git a/Assets/script/ui/entity.meta b/Assets/GameLogic/Origin/ui/entity.meta similarity index 100% rename from Assets/script/ui/entity.meta rename to Assets/GameLogic/Origin/ui/entity.meta diff --git a/Assets/script/ui/entity/UiConveyorEntity.cs b/Assets/GameLogic/Origin/ui/entity/UiConveyorEntity.cs similarity index 100% rename from Assets/script/ui/entity/UiConveyorEntity.cs rename to Assets/GameLogic/Origin/ui/entity/UiConveyorEntity.cs diff --git a/Assets/script/ui/entity/UiConveyorEntity.cs.meta b/Assets/GameLogic/Origin/ui/entity/UiConveyorEntity.cs.meta similarity index 100% rename from Assets/script/ui/entity/UiConveyorEntity.cs.meta rename to Assets/GameLogic/Origin/ui/entity/UiConveyorEntity.cs.meta diff --git a/Assets/script/ui/home.meta b/Assets/GameLogic/Origin/ui/home.meta similarity index 100% rename from Assets/script/ui/home.meta rename to Assets/GameLogic/Origin/ui/home.meta diff --git a/Assets/script/ui/home/CommunicationStatusData.cs b/Assets/GameLogic/Origin/ui/home/CommunicationStatusData.cs similarity index 100% rename from Assets/script/ui/home/CommunicationStatusData.cs rename to Assets/GameLogic/Origin/ui/home/CommunicationStatusData.cs diff --git a/Assets/script/ui/home/CommunicationStatusData.cs.meta b/Assets/GameLogic/Origin/ui/home/CommunicationStatusData.cs.meta similarity index 100% rename from Assets/script/ui/home/CommunicationStatusData.cs.meta rename to Assets/GameLogic/Origin/ui/home/CommunicationStatusData.cs.meta diff --git a/Assets/script/ui/home/HomeLeftColumnSignal.signal b/Assets/GameLogic/Origin/ui/home/HomeLeftColumnSignal.signal similarity index 100% rename from Assets/script/ui/home/HomeLeftColumnSignal.signal rename to Assets/GameLogic/Origin/ui/home/HomeLeftColumnSignal.signal diff --git a/Assets/script/ui/home/HomeLeftColumnSignal.signal.meta b/Assets/GameLogic/Origin/ui/home/HomeLeftColumnSignal.signal.meta similarity index 100% rename from Assets/script/ui/home/HomeLeftColumnSignal.signal.meta rename to Assets/GameLogic/Origin/ui/home/HomeLeftColumnSignal.signal.meta diff --git a/Assets/script/ui/home/HomeLeftColumnUi.cs b/Assets/GameLogic/Origin/ui/home/HomeLeftColumnUi.cs similarity index 100% rename from Assets/script/ui/home/HomeLeftColumnUi.cs rename to Assets/GameLogic/Origin/ui/home/HomeLeftColumnUi.cs diff --git a/Assets/script/ui/home/HomeLeftColumnUi.cs.meta b/Assets/GameLogic/Origin/ui/home/HomeLeftColumnUi.cs.meta similarity index 100% rename from Assets/script/ui/home/HomeLeftColumnUi.cs.meta rename to Assets/GameLogic/Origin/ui/home/HomeLeftColumnUi.cs.meta diff --git a/Assets/script/ui/home/ProgressBarAnimation.anim b/Assets/GameLogic/Origin/ui/home/ProgressBarAnimation.anim similarity index 100% rename from Assets/script/ui/home/ProgressBarAnimation.anim rename to Assets/GameLogic/Origin/ui/home/ProgressBarAnimation.anim diff --git a/Assets/script/ui/home/ProgressBarAnimation.anim.meta b/Assets/GameLogic/Origin/ui/home/ProgressBarAnimation.anim.meta similarity index 100% rename from Assets/script/ui/home/ProgressBarAnimation.anim.meta rename to Assets/GameLogic/Origin/ui/home/ProgressBarAnimation.anim.meta diff --git a/Assets/script/ui/home/右侧列Animation.anim b/Assets/GameLogic/Origin/ui/home/右侧列Animation.anim similarity index 100% rename from Assets/script/ui/home/右侧列Animation.anim rename to Assets/GameLogic/Origin/ui/home/右侧列Animation.anim diff --git a/Assets/script/ui/home/右侧列Animation.anim.meta b/Assets/GameLogic/Origin/ui/home/右侧列Animation.anim.meta similarity index 100% rename from Assets/script/ui/home/右侧列Animation.anim.meta rename to Assets/GameLogic/Origin/ui/home/右侧列Animation.anim.meta diff --git a/Assets/script/ui/home/右侧栏.controller b/Assets/GameLogic/Origin/ui/home/右侧栏.controller similarity index 100% rename from Assets/script/ui/home/右侧栏.controller rename to Assets/GameLogic/Origin/ui/home/右侧栏.controller diff --git a/Assets/script/ui/home/右侧栏.controller.meta b/Assets/GameLogic/Origin/ui/home/右侧栏.controller.meta similarity index 100% rename from Assets/script/ui/home/右侧栏.controller.meta rename to Assets/GameLogic/Origin/ui/home/右侧栏.controller.meta diff --git a/Assets/script/ui/home/左侧列Animation.anim b/Assets/GameLogic/Origin/ui/home/左侧列Animation.anim similarity index 100% rename from Assets/script/ui/home/左侧列Animation.anim rename to Assets/GameLogic/Origin/ui/home/左侧列Animation.anim diff --git a/Assets/script/ui/home/左侧列Animation.anim.meta b/Assets/GameLogic/Origin/ui/home/左侧列Animation.anim.meta similarity index 100% rename from Assets/script/ui/home/左侧列Animation.anim.meta rename to Assets/GameLogic/Origin/ui/home/左侧列Animation.anim.meta diff --git a/Assets/script/ui/home/左侧栏.controller b/Assets/GameLogic/Origin/ui/home/左侧栏.controller similarity index 100% rename from Assets/script/ui/home/左侧栏.controller rename to Assets/GameLogic/Origin/ui/home/左侧栏.controller diff --git a/Assets/script/ui/home/左侧栏.controller.meta b/Assets/GameLogic/Origin/ui/home/左侧栏.controller.meta similarity index 100% rename from Assets/script/ui/home/左侧栏.controller.meta rename to Assets/GameLogic/Origin/ui/home/左侧栏.controller.meta diff --git a/Assets/script/ui/home/通信组件.controller b/Assets/GameLogic/Origin/ui/home/通信组件.controller similarity index 100% rename from Assets/script/ui/home/通信组件.controller rename to Assets/GameLogic/Origin/ui/home/通信组件.controller diff --git a/Assets/script/ui/home/通信组件.controller.meta b/Assets/GameLogic/Origin/ui/home/通信组件.controller.meta similarity index 100% rename from Assets/script/ui/home/通信组件.controller.meta rename to Assets/GameLogic/Origin/ui/home/通信组件.controller.meta diff --git a/Assets/script/ui/pop.meta b/Assets/GameLogic/Origin/ui/pop.meta similarity index 100% rename from Assets/script/ui/pop.meta rename to Assets/GameLogic/Origin/ui/pop.meta diff --git a/Assets/script/ui/pop/AbstractPopUI.cs b/Assets/GameLogic/Origin/ui/pop/AbstractPopUI.cs similarity index 100% rename from Assets/script/ui/pop/AbstractPopUI.cs rename to Assets/GameLogic/Origin/ui/pop/AbstractPopUI.cs diff --git a/Assets/script/ui/pop/AbstractPopUI.cs.meta b/Assets/GameLogic/Origin/ui/pop/AbstractPopUI.cs.meta similarity index 100% rename from Assets/script/ui/pop/AbstractPopUI.cs.meta rename to Assets/GameLogic/Origin/ui/pop/AbstractPopUI.cs.meta diff --git a/Assets/script/ui/pop/AgvPopUI.cs b/Assets/GameLogic/Origin/ui/pop/AgvPopUI.cs similarity index 100% rename from Assets/script/ui/pop/AgvPopUI.cs rename to Assets/GameLogic/Origin/ui/pop/AgvPopUI.cs diff --git a/Assets/script/ui/pop/AgvPopUI.cs.meta b/Assets/GameLogic/Origin/ui/pop/AgvPopUI.cs.meta similarity index 100% rename from Assets/script/ui/pop/AgvPopUI.cs.meta rename to Assets/GameLogic/Origin/ui/pop/AgvPopUI.cs.meta diff --git a/Assets/script/ui/pop/ContainerPopUI.cs b/Assets/GameLogic/Origin/ui/pop/ContainerPopUI.cs similarity index 100% rename from Assets/script/ui/pop/ContainerPopUI.cs rename to Assets/GameLogic/Origin/ui/pop/ContainerPopUI.cs diff --git a/Assets/script/ui/pop/ContainerPopUI.cs.meta b/Assets/GameLogic/Origin/ui/pop/ContainerPopUI.cs.meta similarity index 100% rename from Assets/script/ui/pop/ContainerPopUI.cs.meta rename to Assets/GameLogic/Origin/ui/pop/ContainerPopUI.cs.meta diff --git a/Assets/script/ui/pop/ConveyorPopUI.cs b/Assets/GameLogic/Origin/ui/pop/ConveyorPopUI.cs similarity index 100% rename from Assets/script/ui/pop/ConveyorPopUI.cs rename to Assets/GameLogic/Origin/ui/pop/ConveyorPopUI.cs diff --git a/Assets/script/ui/pop/ConveyorPopUI.cs.meta b/Assets/GameLogic/Origin/ui/pop/ConveyorPopUI.cs.meta similarity index 100% rename from Assets/script/ui/pop/ConveyorPopUI.cs.meta rename to Assets/GameLogic/Origin/ui/pop/ConveyorPopUI.cs.meta diff --git a/Assets/script/ui/pop/IUIPop.cs b/Assets/GameLogic/Origin/ui/pop/IUIPop.cs similarity index 100% rename from Assets/script/ui/pop/IUIPop.cs rename to Assets/GameLogic/Origin/ui/pop/IUIPop.cs diff --git a/Assets/script/ui/pop/IUIPop.cs.meta b/Assets/GameLogic/Origin/ui/pop/IUIPop.cs.meta similarity index 100% rename from Assets/script/ui/pop/IUIPop.cs.meta rename to Assets/GameLogic/Origin/ui/pop/IUIPop.cs.meta diff --git a/Assets/script/ui/pop/StackerPopUI.cs b/Assets/GameLogic/Origin/ui/pop/StackerPopUI.cs similarity index 100% rename from Assets/script/ui/pop/StackerPopUI.cs rename to Assets/GameLogic/Origin/ui/pop/StackerPopUI.cs diff --git a/Assets/script/ui/pop/StackerPopUI.cs.meta b/Assets/GameLogic/Origin/ui/pop/StackerPopUI.cs.meta similarity index 100% rename from Assets/script/ui/pop/StackerPopUI.cs.meta rename to Assets/GameLogic/Origin/ui/pop/StackerPopUI.cs.meta diff --git a/Assets/script/ui/pop/UIPopManage.cs b/Assets/GameLogic/Origin/ui/pop/UIPopManage.cs similarity index 100% rename from Assets/script/ui/pop/UIPopManage.cs rename to Assets/GameLogic/Origin/ui/pop/UIPopManage.cs diff --git a/Assets/script/ui/pop/UIPopManage.cs.meta b/Assets/GameLogic/Origin/ui/pop/UIPopManage.cs.meta similarity index 100% rename from Assets/script/ui/pop/UIPopManage.cs.meta rename to Assets/GameLogic/Origin/ui/pop/UIPopManage.cs.meta diff --git a/Assets/script/utils.meta b/Assets/GameLogic/Origin/utils.meta similarity index 100% rename from Assets/script/utils.meta rename to Assets/GameLogic/Origin/utils.meta diff --git a/Assets/script/utils/ArrayGeneratorWindow.cs b/Assets/GameLogic/Origin/utils/ArrayGeneratorWindow.cs similarity index 100% rename from Assets/script/utils/ArrayGeneratorWindow.cs rename to Assets/GameLogic/Origin/utils/ArrayGeneratorWindow.cs diff --git a/Assets/script/utils/ArrayGeneratorWindow.cs.meta b/Assets/GameLogic/Origin/utils/ArrayGeneratorWindow.cs.meta similarity index 100% rename from Assets/script/utils/ArrayGeneratorWindow.cs.meta rename to Assets/GameLogic/Origin/utils/ArrayGeneratorWindow.cs.meta diff --git a/Assets/script/utils/SerializationVector.cs b/Assets/GameLogic/Origin/utils/SerializationVector.cs similarity index 100% rename from Assets/script/utils/SerializationVector.cs rename to Assets/GameLogic/Origin/utils/SerializationVector.cs diff --git a/Assets/script/utils/SerializationVector.cs.meta b/Assets/GameLogic/Origin/utils/SerializationVector.cs.meta similarity index 100% rename from Assets/script/utils/SerializationVector.cs.meta rename to Assets/GameLogic/Origin/utils/SerializationVector.cs.meta diff --git a/Assets/script/utils/Utils.cs b/Assets/GameLogic/Origin/utils/Utils.cs similarity index 100% rename from Assets/script/utils/Utils.cs rename to Assets/GameLogic/Origin/utils/Utils.cs diff --git a/Assets/script/utils/Utils.cs.meta b/Assets/GameLogic/Origin/utils/Utils.cs.meta similarity index 100% rename from Assets/script/utils/Utils.cs.meta rename to Assets/GameLogic/Origin/utils/Utils.cs.meta diff --git a/Assets/script/utils/test.cs b/Assets/GameLogic/Origin/utils/test.cs similarity index 100% rename from Assets/script/utils/test.cs rename to Assets/GameLogic/Origin/utils/test.cs diff --git a/Assets/script/utils/test.cs.meta b/Assets/GameLogic/Origin/utils/test.cs.meta similarity index 100% rename from Assets/script/utils/test.cs.meta rename to Assets/GameLogic/Origin/utils/test.cs.meta diff --git a/Assets/script/utils/tool.cs b/Assets/GameLogic/Origin/utils/tool.cs similarity index 100% rename from Assets/script/utils/tool.cs rename to Assets/GameLogic/Origin/utils/tool.cs diff --git a/Assets/script/utils/tool.cs.meta b/Assets/GameLogic/Origin/utils/tool.cs.meta similarity index 100% rename from Assets/script/utils/tool.cs.meta rename to Assets/GameLogic/Origin/utils/tool.cs.meta diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 0000000..319a0db --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6cf7718f403386248bfaa46189936cff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion.meta b/Assets/Plugins/ParadoxNotion.meta new file mode 100644 index 0000000..1ebfaab --- /dev/null +++ b/Assets/Plugins/ParadoxNotion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 792ac276a8632414b96fb500de414262 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore.meta b/Assets/Plugins/ParadoxNotion/CanvasCore.meta new file mode 100644 index 0000000..188de8b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bd9f4941b19037f4a88460b874a8a3e1 +folderAsset: yes +timeCreated: 1538755212 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common.meta new file mode 100644 index 0000000..443aab9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0aa2a0733358abb4c90587d3628d0ff9 +folderAsset: yes +timeCreated: 1538657332 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design.meta new file mode 100644 index 0000000..071c2eb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d4ff0b9c7cca6004d96e43fd71a2ec44 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs new file mode 100644 index 0000000..8394288 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs @@ -0,0 +1,112 @@ +using System; + +namespace ParadoxNotion.Design +{ + + ///Marker attribute to include generic type or a type's generic methods in the AOT spoof generation + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Delegate)] + public class SpoofAOTAttribute : Attribute { } + + ///To exclude a type from being listed. Abstract classes are not listed anyway. + [AttributeUsage(AttributeTargets.Class)] + public class DoNotListAttribute : Attribute { } + + ///When a type should for some reason be marked as protected so to always have one instance active. + [AttributeUsage(AttributeTargets.Class)] + public class ProtectedSingletonAttribute : Attribute { } + + ///Use for execution prioratizing when it matters. + [AttributeUsage(AttributeTargets.Class)] + public class ExecutionPriorityAttribute : Attribute + { + readonly public int priority; + public ExecutionPriorityAttribute(int priority) { + this.priority = priority; + } + } + + ///Marks a generic type to be exposed at it's base definition rather than wrapping all preferred types around it. + [AttributeUsage(AttributeTargets.Class)] + public class ExposeAsDefinitionAttribute : Attribute { } + + ///Marks a field to be exposed for inspection even if private (within the context of custom inspector). + ///In custom inspector, private fields even if with [SerializedField] are not exposed by default. + [AttributeUsage(AttributeTargets.Field)] + public class ExposeFieldAttribute : Attribute { } + + ///Options attribute for list inspector editors + [AttributeUsage(AttributeTargets.Field)] + public class ListInspectorOptionAttribute : Attribute + { + readonly public bool allowAdd; + readonly public bool allowRemove; + readonly public bool showFoldout; + public ListInspectorOptionAttribute(bool allowAdd, bool allowRemove, bool alwaysExpanded) { + this.allowAdd = allowAdd; + this.allowRemove = allowRemove; + this.showFoldout = alwaysExpanded; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Use for friendly names and optional priority in relation to naming only + [AttributeUsage(AttributeTargets.All)] + public class NameAttribute : Attribute + { + readonly public string name; + readonly public int priority; + public NameAttribute(string name, int priority = 0) { + this.name = name; + this.priority = priority; + } + } + + ///Use for categorization + [AttributeUsage(AttributeTargets.All)] + public class CategoryAttribute : Attribute + { + readonly public string category; + public CategoryAttribute(string category) { + this.category = category; + } + } + + ///Use to give a description + [AttributeUsage(AttributeTargets.All)] + public class DescriptionAttribute : Attribute + { + readonly public string description; + public DescriptionAttribute(string description) { + this.description = description; + } + } + + ///When a type is associated with an icon + [AttributeUsage(AttributeTargets.Class)] + public class IconAttribute : Attribute + { + readonly public string iconName; + readonly public bool fixedColor; + readonly public string runtimeIconTypeCallback; + readonly public Type fromType; + public IconAttribute(string iconName = "", bool fixedColor = false, string runtimeIconTypeCallback = "") { + this.iconName = iconName; + this.fixedColor = fixedColor; + this.runtimeIconTypeCallback = runtimeIconTypeCallback; + } + public IconAttribute(Type fromType) { + this.fromType = fromType; + } + } + + ///When a type is associated with a color (provide in hex string without "#") + [AttributeUsage(AttributeTargets.Class)] + public class ColorAttribute : Attribute + { + readonly public string hexColor; + public ColorAttribute(string hexColor) { + this.hexColor = hexColor; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs.meta new file mode 100644 index 0000000..b33bb15 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DesignAttributes.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6a1b03fabc29f2479f8b63c5ae861f2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs new file mode 100644 index 0000000..e103603 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs @@ -0,0 +1,155 @@ +using System; + +namespace ParadoxNotion.Design +{ + ///Derive this to create custom attributes to be drawn with an AttributeDrawer. + [AttributeUsage(AttributeTargets.Field)] + abstract public class DrawerAttribute : Attribute + { + virtual public int priority { get { return int.MaxValue; } } + virtual public bool isDecorator { get { return false; } } + } + + ///---------------------------------------------------------------------------------------------- + + ///Will dim control for bool, int, float, string if its default value (or empty for string) + [AttributeUsage(AttributeTargets.Field)] + public class HeaderAttribute : DrawerAttribute + { + readonly public string title; + public override bool isDecorator { get { return true; } } + public HeaderAttribute(string title) { + this.title = title; + } + } + + ///Will dim control for bool, int, float, string if its default value (or empty for string) + [AttributeUsage(AttributeTargets.Field)] + public class DimIfDefaultAttribute : DrawerAttribute + { + public override bool isDecorator { get { return true; } } + public override int priority { get { return 0; } } + } + + ///Use on top of any field to show it only if the provided field is equal to the provided check value + [AttributeUsage(AttributeTargets.Field)] + public class ShowIfAttribute : DrawerAttribute + { + readonly public string fieldName; + readonly public int checkValue; + public override bool isDecorator { get { return true; } } + public override int priority { get { return 1; } } + public ShowIfAttribute(string fieldName, int checkValue) { + this.fieldName = fieldName; + this.checkValue = checkValue; + } + } + + ///Helper attribute. Denotes that the field is required not to be null or string.empty + [AttributeUsage(AttributeTargets.Field)] + public class RequiredFieldAttribute : DrawerAttribute + { + public override bool isDecorator { get { return false; } } + public override int priority { get { return 2; } } + } + + ///Show a button above field + [AttributeUsage(AttributeTargets.Field)] + public class ShowButtonAttribute : DrawerAttribute + { + readonly public string buttonTitle; + readonly public string methodName; + public override bool isDecorator { get { return true; } } + public override int priority { get { return 3; } } + public ShowButtonAttribute(string buttonTitle, string methodnameCallback) { + this.buttonTitle = buttonTitle; + this.methodName = methodnameCallback; + } + } + + ///Will invoke a callback method when the field is changed + [AttributeUsage(AttributeTargets.Field)] + public class CallbackAttribute : DrawerAttribute + { + readonly public string methodName; + public override bool isDecorator { get { return true; } } + public override int priority { get { return 4; } } + public CallbackAttribute(string methodName) { + this.methodName = methodName; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Will clamp float or int value to min + [AttributeUsage(AttributeTargets.Field)] + public class MinValueAttribute : DrawerAttribute + { + public override int priority { get { return 5; } } + readonly public float min; + public MinValueAttribute(float min) { + this.min = min; + } + public MinValueAttribute(int min) { + this.min = min; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Makes float, int or string field show in a delayed control + [AttributeUsage(AttributeTargets.Field)] + public class DelayedFieldAttribute : DrawerAttribute { } + + ///Makes the int field show as layerfield + [AttributeUsage(AttributeTargets.Field)] + public class LayerFieldAttribute : DrawerAttribute { } + + ///Makes the string field show as tagfield + [AttributeUsage(AttributeTargets.Field)] + public class TagFieldAttribute : DrawerAttribute { } + + ///Makes the string field show as text field with specified number of lines + [AttributeUsage(AttributeTargets.Field)] + public class TextAreaFieldAttribute : DrawerAttribute + { + readonly public int numberOfLines; + public TextAreaFieldAttribute(int numberOfLines) { + this.numberOfLines = numberOfLines; + } + } + + ///Use on top of any type of field to restict values to the provided ones through a popup by providing a params array of options. + [AttributeUsage(AttributeTargets.Field)] + public class PopupFieldAttribute : DrawerAttribute + { + readonly public object[] options; + public PopupFieldAttribute(params object[] options) { + this.options = options; + } + } + + ///Makes the float or integer field show as slider + [AttributeUsage(AttributeTargets.Field)] + public class SliderFieldAttribute : DrawerAttribute + { + readonly public float min; + readonly public float max; + public SliderFieldAttribute(float min, float max) { + this.min = min; + this.max = max; + } + public SliderFieldAttribute(int min, int max) { + this.min = min; + this.max = max; + } + } + + ///Forces the field to show as a Unity Object field. Usefull for interface fields + [AttributeUsage(AttributeTargets.Field)] + public class ForceObjectFieldAttribute : DrawerAttribute { } + + ///Can be used on an interface type field to popup select a concrete implementation. + [AttributeUsage(AttributeTargets.Field)] + public class ReferenceFieldAttribute : DrawerAttribute { } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs.meta new file mode 100644 index 0000000..cfa4ace --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/DrawerAttributes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f408bebe1629994794006aa2e272ae5 +timeCreated: 1513958511 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor.meta new file mode 100644 index 0000000..1af88f6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: be3277af62533fc4c8d68065c61db942 +folderAsset: yes +timeCreated: 1538665292 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs new file mode 100644 index 0000000..5ec6d4b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs @@ -0,0 +1,55 @@ +#if UNITY_EDITOR + +using System.Linq; +using UnityEditor; + +namespace ParadoxNotion.Design +{ + + ///Utility for handling player setting defines + public static class DefinesManager + { + + ///Is define..defined in player settings for current target? + public static bool HasDefineForCurrentTargetGroup(string define) { + var currentTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentTarget).Split(';'); + return defines.Contains(define); + } + + ///Set define for current target + public static void SetDefineActiveForCurrentTargetGroup(string define, bool enable) { + var currentTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + SetDefineActiveForTargetGroup(currentTarget, define, enable); + } + + ///Set define for target + public static void SetDefineActiveForTargetGroup(BuildTargetGroup target, string define, bool enable) { + var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';').ToList(); + if ( enable == true && !defines.Contains(define) ) { + defines.Add(define); + } + if ( enable == false ) { + defines.Remove(define); + } + PlayerSettings.SetScriptingDefineSymbolsForGroup(target, string.Join(";", defines)); + } + + ///Toggle define in player settings for all targets + public static void SetDefineActiveForAllTargetGroups(string define, bool enable) { + foreach ( BuildTargetGroup target in System.Enum.GetValues(typeof(BuildTargetGroup)) ) { + if ( target == BuildTargetGroup.Unknown ) { + continue; + } + + if ( typeof(BuildTargetGroup).GetField(target.ToString()).IsDefined(typeof(System.ObsoleteAttribute), true) ) { + continue; + } + + SetDefineActiveForTargetGroup(target, define, enable); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs.meta new file mode 100644 index 0000000..a7022eb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/DefinesManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 133797bc4f2687b42a8a5f1baa7ba63f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources.meta new file mode 100644 index 0000000..0a40ebd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 781130fb96acf5f4384bd574f6cd9704 +folderAsset: yes +timeCreated: 1538665299 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png new file mode 100644 index 0000000..6d997a1 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png.meta new file mode 100644 index 0000000..76302af --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Community.png.meta @@ -0,0 +1,104 @@ +fileFormatVersion: 2 +guid: 17c9c4eff9e8ef144ba8beb631fefc75 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png new file mode 100644 index 0000000..a87a808 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png.meta new file mode 100644 index 0000000..b00d5af --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Empty.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: ae3fd876b2e88a94e9391b1ad6bbf549 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png new file mode 100644 index 0000000..665c8ca Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png.meta new file mode 100644 index 0000000..b165af4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Manual.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 7db3c001bdf39ca46ab6bb3bbfe58d00 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png new file mode 100644 index 0000000..6c8af28 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png.meta new file mode 100644 index 0000000..d51fad8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Resources.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 18c197a350b700d4f96e039071ffd2b6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png new file mode 100644 index 0000000..bf86376 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png.meta new file mode 100644 index 0000000..9deb97a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/Editor/Resources/Support.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 70b53005eb048f14ab18fcbb26bf6774 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor.meta new file mode 100644 index 0000000..61e7a0c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 3774cc9cbacfc4a41b0fb7fa91f7950f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs new file mode 100644 index 0000000..2981d70 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs @@ -0,0 +1,242 @@ +#if UNITY_EDITOR + +using System; +using System.IO; +using System.Text; +using System.Linq; +using UnityEngine; +using System.Collections.Generic; +using System.Reflection; + +namespace ParadoxNotion.Design +{ + + public static class AOTClassesGenerator + { + + //always spoof those for shake of convenience + static readonly List defaultSpoofTypes = new List + { + typeof(bool), + typeof(float), + typeof(int), + typeof(Vector2), + typeof(Vector3), + typeof(Vector4), + typeof(Quaternion), + typeof(Keyframe), + typeof(Bounds), + typeof(Color), + typeof(Rect), + typeof(ContactPoint), + typeof(ContactPoint2D), + typeof(Collision), + typeof(Collision2D), + typeof(RaycastHit), + typeof(RaycastHit2D), + typeof(Ray), + typeof(Space), + }; + + ///Custom generic types to spoof were we cant use [SpoofAOT] + static readonly List customGenericSpoof = new List + { + typeof(System.Action<>), + typeof(System.Func<>), + typeof(UnityEngine.Events.UnityAction<>), + typeof(IList<>), + typeof(List<>), + typeof(Nullable<>), + }; + + ///Generates AOT classes file out of preferred types list + public static void GenerateAOTClasses(string path, Type[] targetTypes) { + + if ( string.IsNullOrEmpty(path) ) { + return; + } + + var spoofTypes = defaultSpoofTypes.Where(t => t.IsValueType).ToList(); + spoofTypes.AddRange(targetTypes.Where(t => t.IsValueType && !spoofTypes.Contains(t))); + spoofTypes = spoofTypes.Distinct().ToList(); + var types = ReflectionTools.GetAllTypes(true).Where(t => t.RTIsDefined(typeof(SpoofAOTAttribute), true)).Distinct(); + + var nTypes = 0; + var nMethods = 0; + + var sb = new StringBuilder(); + + sb.AppendLine("#pragma warning disable 0219, 0168, 0612"); + sb.AppendLine("namespace ParadoxNotion.Internal{"); + sb.AppendLine(); + sb.AppendLine("\t//Auto generated classes for AOT support, where using undeclared generic classes with value types is limited. These are not actualy used but rather just declared for the compiler"); + sb.AppendLine("\tpartial class AOTDummy{"); + sb.AppendLine(); + sb.AppendLine("\t\tobject o = null;"); + + sb.AppendLine("\t\t///----------------------------------------------------------------------------------------------"); + + //Generic Types + foreach ( var type in types ) { + if ( !type.IsAbstract && type.IsGenericTypeDefinition && type.RTGetGenericArguments().Length == 1 ) { + + var constrains = type.RTGetGenericArguments()[0].GetGenericParameterConstraints(); + + if ( constrains.Length == 0 || constrains[0].IsValueType || constrains[0] == typeof(Enum) ) { + + if ( typeof(Delegate).IsAssignableFrom(type) ) { + nTypes++; + sb.AppendLine(string.Format("\t\tvoid {0}()", type.FriendlyName(true).Replace(".", "_").Replace("", "_Delegate")) + "{"); + foreach ( var spoofType in spoofTypes ) { + var a = type.FriendlyName(true).Replace("", "<" + spoofType.FullName + ">").Replace("+", "."); + var b = "_" + type.FriendlyName(true).Replace(".", "_").Replace("", "_" + spoofType.FullName.Replace(".", "_").Replace("+", "_")); + sb.AppendLine(string.Format("\t\t\t{0} {1};", a, b)); + } + sb.AppendLine("\t\t}"); + + } else { + + foreach ( var spoofType in spoofTypes ) { + if ( constrains.Length == 1 && constrains[0] == typeof(Enum) && !spoofType.IsEnum ) { continue; } + nTypes++; + var a = type.FriendlyName(true).Replace("", "<" + spoofType.FullName + ">").Replace("+", "."); + var b = type.FriendlyName(true).Replace(".", "_").Replace("", "_" + spoofType.FullName.Replace(".", "_").Replace("+", "_")); + sb.AppendLine(string.Format("\t\t{0} {1};", a, b)); + } + } + + sb.AppendLine(); + } + } + } + + sb.AppendLine("\t\t///----------------------------------------------------------------------------------------------"); + + //Generic Methods + foreach ( var type in types ) { + var index = 0; + foreach ( var method in type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.DeclaredOnly) ) { + + if ( method.IsObsolete() ) { continue; } + + if ( method.IsGenericMethodDefinition && method.RTGetGenericArguments().Length == 1 ) { + + var constrains = method.RTGetGenericArguments()[0].GetGenericParameterConstraints(); + + if ( constrains.Length == 0 || constrains[0].IsValueType ) { + + index++; + + var decType = method.DeclaringType; + var varName = "_" + decType.FullName.Replace(".", "_"); + sb.AppendLine(string.Format("\t\tvoid {0}_{1}_{2}()", decType.FullName.Replace(".", "_"), method.Name, index) + " {"); + if ( !method.IsStatic ) { + sb.AppendLine(string.Format("\t\t\t{0} {1} = default({2});", decType.FullName, varName, decType.FullName)); + } + + foreach ( var spoofType in spoofTypes ) { + nMethods++; + var a = method.IsStatic ? decType.FullName : varName; + var b = method.Name; + var c = spoofType.FullName.Replace("+", "."); + var paramsString = ""; + var parameters = method.GetParameters(); + for ( var i = 0; i < parameters.Length; i++ ) { + var parameter = parameters[i]; + var toString = parameter.ParameterType.FullName; + if ( parameter.ParameterType.IsGenericParameter ) { + toString = spoofType.FullName; + } + if ( parameter.ParameterType.IsGenericType ) { + toString = parameter.ParameterType.FriendlyName(true).Replace("", "<" + spoofType.FullName + ">"); + toString = toString.Replace("[[T]]", ""); + } + toString = toString.Replace("+", "."); + paramsString += string.Format("({0})o", toString); + if ( i < parameters.Length - 1 ) { + paramsString += ", "; + } + } + var d = paramsString; + sb.AppendLine(string.Format("\t\t\t{0}.{1}<{2}>( {3} );", a, b, c, d)); + } + + sb.AppendLine("\t\t}"); + sb.AppendLine(); + } + } + } + } + + sb.AppendLine("\t\t///----------------------------------------------------------------------------------------------"); + + //custom stuff + sb.AppendLine("\t\tvoid CustomSpoof(){"); + foreach ( var spoofType in spoofTypes ) { + var sName = spoofType.FullName.Replace("+", "."); + var fName = spoofType.FullName.Replace(".", "_").Replace("+", "_"); + foreach ( var genericType in customGenericSpoof ) { + nTypes++; + var a = genericType.FriendlyName(true).Replace("", "<" + sName + ">"); + var b = genericType.FriendlyName(true).Replace(".", "_").Replace("", "_") + fName; + sb.AppendLine(string.Format("\t\t\t{0} {1};", a, b)); + } + nTypes++; + sb.AppendLine(string.Format("\t\t\tSystem.Collections.Generic.IDictionary IDict_{1};", sName, fName)); + sb.AppendLine(string.Format("\t\t\tSystem.Collections.Generic.Dictionary Dict_{1};", sName, fName)); + sb.AppendLine("\t\t\t///------"); + } + sb.AppendLine("\t\t}"); + sb.AppendLine("\t}"); + sb.AppendLine("}"); + sb.AppendLine(); + sb.AppendLine(string.Format("//{0} Types | {1} Methods spoofed", nTypes, nMethods)); + sb.AppendLine("#pragma warning restore 0219, 0168, 0612"); + + File.WriteAllText(path, sb.ToString()); + } + + ///Generates a link.xml file out of preferred types list + public static void GenerateLinkXML(string path, Type[] targetTypes) { + + if ( string.IsNullOrEmpty(path) ) { + return; + } + + var spoofTypes = defaultSpoofTypes; + spoofTypes.AddRange(targetTypes); + var pairs = new Dictionary>(); + foreach ( var type in spoofTypes ) { + var asmName = type.Assembly.GetName().Name; + if ( !pairs.ContainsKey(asmName) ) { + pairs[asmName] = new List(); + } + pairs[asmName].Add(type); + } + + var sb = new StringBuilder(); + sb.AppendLine(""); + + sb.AppendLine("\t"); + sb.AppendLine("\t"); + + //get assembly from a common paradoxnotion *runtime* type + var paradoxAsmName = typeof(ParadoxNotion.Serialization.JSONSerializer).Assembly.GetName().Name; + sb.AppendLine(string.Format("\t", paradoxAsmName)); + sb.AppendLine("\t"); + + foreach ( var pair in pairs ) { + sb.AppendLine(string.Format("\t", pair.Key)); + foreach ( var type in pair.Value ) { + sb.AppendLine("\t\t"); + } + sb.AppendLine("\t"); + } + sb.AppendLine(""); + + File.WriteAllText(path, sb.ToString()); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs.meta new file mode 100644 index 0000000..dd601cc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AOTClassesGenerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3b148b00f34f1a94488008fd63cdd171 +timeCreated: 1430214156 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs new file mode 100644 index 0000000..b457f0a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs @@ -0,0 +1,86 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using UnityEditor; +using System.Linq; + +namespace ParadoxNotion.Design +{ + + ///Can track assets of specific type when required. This is faster than requesting AssetDabase all the time and can also be used in separate thread. + public class AssetTracker : AssetPostprocessor + { + public static event System.Action onAssetsImported; + public static event System.Action onAssetsDeleted; + public static event System.Action onAssetsMoved; + + public static Dictionary trackedAssets { get; private set; } + public static List trackedTypes { get; private set; } + + ///Call this to start tracking assets of specified type (and assignables to that) + public static void BeginTrackingAssetsOfType(System.Type type) { + if ( trackedAssets == null ) { trackedAssets = new Dictionary(); } + if ( trackedTypes == null ) { trackedTypes = new List(); } + + if ( trackedTypes.Contains(type) ) { + UnityEngine.Debug.LogError("Asset type is already tracked: " + type); + return; + } + + trackedTypes.Add(type); + + //we need to immediately fetch them here now + var assetGUIDS = AssetDatabase.FindAssets(string.Format("t:{0}", type.Name)); + foreach ( var guid in assetGUIDS ) { + var path = AssetDatabase.GUIDToAssetPath(guid); + var asset = AssetDatabase.LoadAssetAtPath(path, type); + trackedAssets[path] = asset; + } + } + + //unity callback + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { + AssetsImported(importedAssets); + if ( onAssetsImported != null ) { onAssetsImported(importedAssets); } + + AssetsDeleted(deletedAssets); + if ( onAssetsDeleted != null ) { onAssetsDeleted(deletedAssets); } + + AssetsMoved(movedAssets, movedFromAssetPaths); + if ( onAssetsMoved != null ) { onAssetsMoved(movedAssets, movedFromAssetPaths); } + + } + + //.. + static void AssetsImported(string[] paths) { + if ( trackedTypes == null ) { return; } + foreach ( var path in paths ) { + var asset = AssetDatabase.LoadAssetAtPath(path, typeof(UnityEngine.Object)); + if ( asset != null && trackedTypes.Any(t => t.IsAssignableFrom(asset.GetType())) ) { + trackedAssets[path] = asset; + } + } + } + + //.. + static void AssetsDeleted(string[] paths) { + if ( trackedTypes == null ) { return; } + foreach ( var path in paths ) { + if ( trackedAssets.ContainsKey(path) ) { + trackedAssets.Remove(path); + } + } + } + + //.. + static void AssetsMoved(string[] moveToPaths, string[] moveFromPaths) { + if ( trackedTypes == null ) { return; } + AssetsDeleted(moveFromPaths); + AssetsImported(moveToPaths); + } + + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs.meta new file mode 100644 index 0000000..5d59f97 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AssetTracker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09cec26775978914c969e7c507315723 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs new file mode 100644 index 0000000..814fba7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs @@ -0,0 +1,256 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using System.Linq; + +namespace ParadoxNotion.Design +{ + ///Used to create header / separators similar to Unity's Header attribute + public class HeaderDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + GUILayout.Space(8); + GUILayout.Label(string.Format("- {0}", attribute.title)); + return MoveNextDrawer(); + } + } + + ///Will dim control for bool, int, float, string if its default value (or empty for string) + public class DimIfDefaultDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + var dim = false; + + if ( fieldInfo.FieldType.IsClass ) { + dim = instance == null; + } + + if ( fieldInfo.FieldType == typeof(bool) ) { + dim = (bool)instance == false; + } + + if ( fieldInfo.FieldType == typeof(int) ) { + dim = (int)instance == 0; + } + + if ( fieldInfo.FieldType == typeof(float) ) { + dim = (float)instance == 0; + } + + if ( fieldInfo.FieldType == typeof(string) ) { + dim = string.IsNullOrEmpty((string)instance); + } + + if ( dim ) { GUI.color = GUI.color.WithAlpha(0.5f); } + instance = MoveNextDrawer(); + GUI.color = Color.white; + return instance; + } + } + + ///Will show value only if another field or prop is equal to target + public class ShowIfDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + var member = context.GetType().RTGetFieldOrProp(attribute.fieldName); + if ( member != null ) { + var memberValue = member.RTGetFieldOrPropValue(context); + var memberType = memberValue?.GetType(); + int intValue; + if ( memberType == null || !memberType.IsValueType ) { + intValue = memberValue != null ? 1 : 0; + } else { + intValue = (int)System.Convert.ChangeType(memberValue, typeof(int)); + } + if ( intValue != attribute.checkValue ) { + return instance; //return instance without any editor (thus hide it) + } + } + return MoveNextDrawer(); + } + } + + ///Will show in red if value is null or empty + public class RequiredFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + var isNull = instance == null || instance.Equals(null) || ( ( instance is string ) && string.IsNullOrEmpty((string)instance) ); + instance = MoveNextDrawer(); + if ( isNull ) { EditorUtils.MarkLastFieldError("An instance is required."); } + return instance; + } + } + + ///Will show a button above field + public class ShowButtonDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( !string.IsNullOrEmpty(attribute.methodName) ) { + var method = info.wrapperInstanceContext.GetType().RTGetMethod(attribute.methodName); + if ( method != null && method.GetParameters().Length == 0 ) { + if ( GUILayout.Button(attribute.buttonTitle) ) { + method.Invoke(info.wrapperInstanceContext, null); + } + } else { + GUILayout.Label(string.Format("Can't find ShowIf method '{0}'.", attribute.methodName)); + } + } + return MoveNextDrawer(); + } + } + + ///Will invoke a callback method when value change + public class CallbackDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + var newValue = MoveNextDrawer(); + if ( !Equals(newValue, instance) ) { + var method = info.wrapperInstanceContext.GetType().RTGetMethod(attribute.methodName); + if ( method != null && method.GetParameters().Length == 0 ) { + fieldInfo.SetValue(context, newValue); //manual set field before invoke + method.Invoke(info.wrapperInstanceContext, null); + } else { + GUILayout.Label(string.Format("Can't find Callback method '{0}'.", attribute.methodName)); + } + } + return newValue; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Will clamp float or int value to min + public class MinValueDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(float) ) { + return Mathf.Max((float)MoveNextDrawer(), (float)attribute.min); + } + if ( fieldInfo.FieldType == typeof(int) ) { + return Mathf.Max((int)MoveNextDrawer(), (int)attribute.min); + } + return MoveNextDrawer(); + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Will make float, int or string field show in a delayed control + public class DelayedFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(float) ) { + return EditorGUILayout.DelayedFloatField(content, (float)instance); + } + if ( fieldInfo.FieldType == typeof(int) ) { + return EditorGUILayout.DelayedIntField(content, (int)instance); + } + if ( fieldInfo.FieldType == typeof(string) ) { + return EditorGUILayout.DelayedTextField(content, (string)instance); + } + return MoveNextDrawer(); + } + } + + ///Will force to use ObjectField editor, usefull for interfaces + public class ForceObjectFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( typeof(UnityEngine.Object).IsAssignableFrom(fieldInfo.FieldType) || fieldInfo.FieldType.IsInterface ) { + return EditorGUILayout.ObjectField(content, instance as UnityEngine.Object, fieldInfo.FieldType, true); + } + return MoveNextDrawer(); + } + } + + ///Will restrict selection on provided values + public class PopupFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( attribute.options != null && attribute.options.Length > 0 ) { + var optType = attribute.options[0].GetType(); + if ( fieldInfo.FieldType.IsAssignableFrom(optType) ) { + return EditorUtils.Popup(content, instance, attribute.options); + } + } + return MoveNextDrawer(); + } + } + + ///Will show a slider for int and float values + public class SliderFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(float) ) { + return EditorGUILayout.Slider(content, (float)instance, (float)attribute.min, (float)attribute.max); + } + if ( fieldInfo.FieldType == typeof(int) ) { + return EditorGUILayout.IntSlider(content, (int)instance, (int)attribute.min, (int)attribute.max); + } + return MoveNextDrawer(); + } + } + + ///Will show a layer selection for int values + public class LayerFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(int) ) { + return EditorGUILayout.LayerField(content, (int)instance); + } + return MoveNextDrawer(); + } + } + + ///Will show a Tag selection for string values + public class TagFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(string) ) { + return EditorGUILayout.TagField(content, (string)instance); + } + return MoveNextDrawer(); + } + } + + ///Will show a text area for string values + public class TextAreaDrawer : AttributeDrawer + { + private static GUIStyle areaStyle; + static TextAreaDrawer() { + areaStyle = new GUIStyle(GUI.skin.GetStyle("TextArea")); + areaStyle.wordWrap = true; + } + public override object OnGUI(GUIContent content, object instance) { + if ( fieldInfo.FieldType == typeof(string) ) { + GUILayout.Label(content); + return EditorGUILayout.TextArea((string)instance, areaStyle, GUILayout.Height(attribute.numberOfLines * areaStyle.lineHeight)); + } + return MoveNextDrawer(); + } + } + + ///Can be used on an interface to popup select a concrete implementation. + public class ReferenceFieldDrawer : AttributeDrawer + { + public override object OnGUI(GUIContent content, object instance) + { + var options = ReflectionTools.GetImplementationsOf(fieldInfo.FieldType); + var selection = EditorUtils.Popup(content, instance != null? instance.GetType() : fieldInfo.FieldType, options); + if (selection == null){ return instance = null; } + + if (instance == null || instance.GetType() != selection ) { + if (!typeof(UnityEngine.Object).IsAssignableFrom(selection)){ + return System.Activator.CreateInstance(selection); + } + } + EditorGUI.indentLevel++; + EditorUtils.ReflectedObjectInspector(instance, contextUnityObject); + EditorGUI.indentLevel--; + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs.meta new file mode 100644 index 0000000..a8bfc5a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/AttributeDrawers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6bc5dd489056dda48ad29f55f5da5c78 +timeCreated: 1513884114 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs new file mode 100644 index 0000000..02f50c8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs @@ -0,0 +1,74 @@ +#if UNITY_EDITOR + +using System; +using System.Collections.Generic; +using ParadoxNotion.Serialization; + +namespace ParadoxNotion.Design +{ + + ///A very simple pool to handle Copy/Pasting + public static class CopyBuffer + { + + private static Dictionary cachedCopies = new Dictionary(); + private static Dictionary cachedObjects = new Dictionary(); + + public static void FlushMem() { + cachedCopies = new Dictionary(); + cachedObjects = new Dictionary(); + } + + ///Is copy available? + public static bool Has() { + return ( cachedCopies.TryGetValue(typeof(T), out string json) ); + } + + ///Returns true if copy exist and the copy + public static bool TryGet(out T copy) { + copy = Get(); + return object.Equals(copy, default(T)) == false; + } + + ///Returns a copy + public static T Get() { + if ( cachedCopies.TryGetValue(typeof(T), out string json) ) { + return JSONSerializer.Deserialize(json); + } + return default(T); + } + + ///Sets a copy + public static void Set(T obj) { + cachedCopies[typeof(T)] = JSONSerializer.Serialize(typeof(T), obj); ; + } + + ///---------------------------------------------------------------------------------------------- + + /// + public static bool HasCache() { + return ( cachedObjects.TryGetValue(typeof(T), out object obj) ); + } + + /// + public static bool TryGetCache(out T copy) { + copy = GetCache(); + return object.Equals(copy, default(T)) == false; + } + + /// + public static T GetCache() { + if ( cachedObjects.TryGetValue(typeof(T), out object obj) ) { + return (T)obj; + } + return default(T); + } + + /// + public static void SetCache(T obj) { + cachedObjects[typeof(T)] = obj; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs.meta new file mode 100644 index 0000000..46e6c56 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/CopyBuffer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e2177b57a40461d4484f7675d40b6fd0 +timeCreated: 1510990664 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases.meta new file mode 100644 index 0000000..5b175d7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e2a7ec01cbc8b5744b88354fd6b2e310 +folderAsset: yes +timeCreated: 1541186478 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs new file mode 100644 index 0000000..bd52d9e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs @@ -0,0 +1,53 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; + +namespace ParadoxNotion.Design +{ + + [InitializeOnLoad] + public static class Colors + { + + static Colors() { Load(); } + + [InitializeOnLoadMethod] + static void Load() { + lightOrange = EditorGUIUtility.isProSkin ? new Color(1, 0.9f, 0.4f) : Color.white; + lightBlue = EditorGUIUtility.isProSkin ? new Color(0.8f, 0.8f, 1) : Color.white; + lightRed = EditorGUIUtility.isProSkin ? new Color(1, 0.5f, 0.5f, 0.8f) : Color.white; + prefabOverrideColor = new Color(0.05f, 0.5f, 0.75f, 1f); + } + + public const string HEX_LIGHT = "#d2d2d2"; + public const string HEX_DARK = "#333333"; + + public static Color lightOrange { get; private set; } + public static Color lightBlue { get; private set; } + public static Color lightRed { get; private set; } + public static Color prefabOverrideColor { get; private set; } + + ///---------------------------------------------------------------------------------------------- + + ///A greyscale color + public static Color Grey(float value) { + return new Color(value, value, value); + } + + ///---------------------------------------------------------------------------------------------- + + ///Return a color for a type. + public static Color GetTypeColor(System.Type type) { + return TypePrefs.GetTypeColor(type); + } + + ///Return a string hex color for a type. + public static string GetTypeHexColor(System.Type type) { + return TypePrefs.GetTypeHexColor(type); + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs.meta new file mode 100644 index 0000000..3833d52 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Colors.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 987618a20a0698a429059efcc504a5c9 +timeCreated: 1510968237 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs new file mode 100644 index 0000000..8ab0dfa --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs @@ -0,0 +1,71 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; + +namespace ParadoxNotion.Design +{ + + ///Common Icons Database + [InitializeOnLoad] + public static class Icons + { + + static Icons() { Load(); } + + [InitializeOnLoadMethod] + static void Load() { + playIcon = EditorGUIUtility.FindTexture("d_PlayButton"); + pauseIcon = EditorGUIUtility.FindTexture("d_PauseButton"); + stepIcon = EditorGUIUtility.FindTexture("d_StepButton"); + viewIcon = EditorGUIUtility.FindTexture("d_ViewToolOrbit On"); + csIcon = EditorGUIUtility.FindTexture("cs Script Icon"); + tagIcon = EditorGUIUtility.FindTexture("d_FilterByLabel"); + searchIcon = EditorGUIUtility.FindTexture("Search Icon"); + infoIcon = EditorGUIUtility.FindTexture("d_console.infoIcon.sml"); + warningIcon = EditorGUIUtility.FindTexture("d_console.warnicon.sml"); + warningIconBig = EditorGUIUtility.FindTexture("d_console.warnicon"); + errorIcon = EditorGUIUtility.FindTexture("d_console.erroricon.sml"); + errorIconBig = EditorGUIUtility.FindTexture("d_console.erroricon"); + folderIcon = EditorGUIUtility.FindTexture("Folder Icon"); + favoriteIcon = EditorGUIUtility.FindTexture("Favorite Icon"); + gearPopupIcon = EditorGUIUtility.FindTexture("d__Popup"); + gearIcon = EditorGUIUtility.FindTexture("EditorSettings Icon"); + scaleIcon = EditorGUIUtility.FindTexture("d_ScaleTool"); + minMaxIcon = EditorGUIUtility.FindTexture("d_winbtn_win_max"); + plusIcon = EditorGUIUtility.FindTexture("d_CreateAddNew"); + helpIcon = EditorGUIUtility.FindTexture("d__Help"); + } + + public static Texture2D playIcon { get; private set; } + public static Texture2D pauseIcon { get; private set; } + public static Texture2D stepIcon { get; private set; } + public static Texture2D viewIcon { get; private set; } + public static Texture2D csIcon { get; private set; } + public static Texture2D tagIcon { get; private set; } + public static Texture2D searchIcon { get; private set; } + public static Texture2D infoIcon { get; private set; } + public static Texture2D warningIcon { get; private set; } + public static Texture2D warningIconBig { get; private set; } + public static Texture2D errorIcon { get; private set; } + public static Texture2D errorIconBig { get; private set; } + public static Texture2D folderIcon { get; private set; } + public static Texture2D favoriteIcon { get; private set; } + public static Texture2D gearPopupIcon { get; private set; } + public static Texture2D gearIcon { get; private set; } + public static Texture2D scaleIcon { get; private set; } + public static Texture2D minMaxIcon { get; private set; } + public static Texture2D plusIcon { get; private set; } + public static Texture2D helpIcon { get; private set; } + + + ///---------------------------------------------------------------------------------------------- + + ///Returns a type icon + public static Texture GetTypeIcon(System.Type type) { + return TypePrefs.GetTypeIcon(type); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs.meta new file mode 100644 index 0000000..01250f5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Icons.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 69ab7b26fef952b43af5148544cd9a0c +timeCreated: 1510968237 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs new file mode 100644 index 0000000..ed39d1b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs @@ -0,0 +1,243 @@ +#if UNITY_EDITOR + +using UnityEngine; + +namespace ParadoxNotion.Design +{ + + ///Common Styles Database + public static class Styles + { + + private static GUIStyle _centerLabel; + public static GUIStyle centerLabel { + get + { + if ( _centerLabel == null ) { + _centerLabel = new GUIStyle(GUI.skin.label); + _centerLabel.richText = true; + _centerLabel.fontSize = 11; + _centerLabel.alignment = TextAnchor.MiddleCenter; + } + return _centerLabel; + } + } + + private static GUIStyle _topCenterLabel; + public static GUIStyle topCenterLabel { + get + { + if ( _topCenterLabel == null ) { + _topCenterLabel = new GUIStyle(GUI.skin.label); + _topCenterLabel.richText = true; + _topCenterLabel.fontSize = 11; + _topCenterLabel.alignment = TextAnchor.UpperCenter; + } + return _topCenterLabel; + } + } + + + private static GUIStyle _leftLabel; + public static GUIStyle leftLabel { + get + { + if ( _leftLabel == null ) { + _leftLabel = new GUIStyle(GUI.skin.label); + _leftLabel.richText = true; + _leftLabel.fontSize = 11; + _leftLabel.alignment = TextAnchor.MiddleLeft; + _leftLabel.padding.right = 6; + } + return _leftLabel; + } + } + + private static GUIStyle _rightLabel; + public static GUIStyle rightLabel { + get + { + if ( _rightLabel == null ) { + _rightLabel = new GUIStyle(GUI.skin.label); + _rightLabel.richText = true; + _rightLabel.fontSize = 11; + _rightLabel.alignment = TextAnchor.MiddleRight; + _rightLabel.padding.left = 6; + } + return _rightLabel; + } + } + + private static GUIStyle _topLeftLabel; + public static GUIStyle topLeftLabel { + get + { + if ( _topLeftLabel == null ) { + _topLeftLabel = new GUIStyle(GUI.skin.label); + _topLeftLabel.richText = true; + _topLeftLabel.fontSize = 11; + _topLeftLabel.alignment = TextAnchor.UpperLeft; + _topLeftLabel.padding.right = 6; + } + return _topLeftLabel; + } + } + + private static GUIStyle _topRight; + public static GUIStyle topRightLabel { + get + { + if ( _topRight == null ) { + _topRight = new GUIStyle(GUI.skin.label); + _topRight.richText = true; + _topRight.fontSize = 11; + _topRight.alignment = TextAnchor.UpperRight; + _topRight.padding.left = 6; + } + return _topRight; + } + } + + private static GUIStyle _bottomCenter; + public static GUIStyle bottomCenterLabel { + get + { + if ( _bottomCenter == null ) { + _bottomCenter = new GUIStyle(GUI.skin.label); + _bottomCenter.richText = true; + _bottomCenter.fontSize = 11; + _bottomCenter.alignment = TextAnchor.LowerCenter; + } + return _bottomCenter; + } + } + + ///---------------------------------------------------------------------------------------------- + + private static GUIStyle _portContentImage; + public static GUIStyle proxyContentImage { + get + { + if ( _portContentImage == null ) { + _portContentImage = new GUIStyle(GUI.skin.label); + _portContentImage.alignment = TextAnchor.MiddleCenter; + _portContentImage.padding = new RectOffset(0, 0, _portContentImage.padding.top, _portContentImage.padding.bottom); + _portContentImage.margin = new RectOffset(0, 0, _portContentImage.margin.top, _portContentImage.margin.bottom); + } + return _portContentImage; + } + } + + private static GUIStyle _proxyRightContentLabel; + public static GUIStyle proxyRightContentLabel { + get + { + if ( _proxyRightContentLabel == null ) { + _proxyRightContentLabel = new GUIStyle(ParadoxNotion.Design.Styles.rightLabel); + _proxyRightContentLabel.margin = new RectOffset(0, 0, _proxyRightContentLabel.margin.top, _proxyRightContentLabel.margin.bottom); + _proxyRightContentLabel.padding = new RectOffset(8, 0, _proxyRightContentLabel.padding.top, _proxyRightContentLabel.padding.bottom); + } + return _proxyRightContentLabel; + } + } + + private static GUIStyle _proxyLeftContentLabel; + public static GUIStyle proxyLeftContentLabel { + get + { + if ( _proxyLeftContentLabel == null ) { + _proxyLeftContentLabel = new GUIStyle(ParadoxNotion.Design.Styles.leftLabel); + _proxyLeftContentLabel.margin = new RectOffset(0, 0, _proxyLeftContentLabel.margin.top, _proxyLeftContentLabel.margin.bottom); + _proxyLeftContentLabel.padding = new RectOffset(0, 8, _proxyLeftContentLabel.padding.top, _proxyLeftContentLabel.padding.bottom); + } + return _proxyLeftContentLabel; + } + } + + ///---------------------------------------------------------------------------------------------- + + private static GUIStyle _wrapLabel; + public static GUIStyle wrapLabel { + get + { + if ( _wrapLabel == null ) { + _wrapLabel = new GUIStyle(topLeftLabel); + _wrapLabel.wordWrap = true; + } + return _wrapLabel; + } + } + + private static GUIStyle _wrapTextArea; + public static GUIStyle wrapTextArea { + get + { + if ( _wrapTextArea == null ) { + _wrapTextArea = new GUIStyle(GUI.skin.textArea); + _wrapTextArea.wordWrap = true; + } + return _wrapTextArea; + } + } + + ///---------------------------------------------------------------------------------------------- + + private static GUIStyle _roundedBox; + public static GUIStyle roundedBox { + get + { + if ( _roundedBox != null ) { return _roundedBox; } + _roundedBox = new GUIStyle((GUIStyle)"ShurikenEffectBg"); + if ( !UnityEditor.EditorGUIUtility.isProSkin ) { + _roundedBox.normal.background = null; + } + return _roundedBox; + } + } + + private static GUIStyle _buttonLeft; + public static GUIStyle buttonLeft { + get { return _buttonLeft ?? ( _buttonLeft = new GUIStyle((GUIStyle)"AppCommandLeft") ); } + } + + private static GUIStyle _buttonMid; + public static GUIStyle buttonMid { + get { return _buttonMid ?? ( _buttonMid = new GUIStyle((GUIStyle)"AppCommandMid") ); } + } + + private static GUIStyle _buttonRight; + public static GUIStyle buttonRight { + get { return _buttonRight ?? ( _buttonRight = new GUIStyle((GUIStyle)"AppCommandRight") ); } + } + + private static GUIStyle _highlightBox; + public static GUIStyle highlightBox { + get { return _highlightBox ?? ( _highlightBox = new GUIStyle((GUIStyle)"LightmapEditorSelectedHighlight") ); } + } + + private static GUIStyle _toolbarSearchField; + public static GUIStyle toolbarSearchTextField { + get { return _toolbarSearchField ?? ( _toolbarSearchField = new GUIStyle((GUIStyle)"ToolbarSearchTextField") ); } + } + + private static GUIStyle _toolbarSearchButton; + public static GUIStyle toolbarSearchCancelButton { + get { return _toolbarSearchButton ?? ( _toolbarSearchButton = new GUIStyle((GUIStyle)"ToolbarSearchCancelButton") ); } + } + + private static GUIStyle _shadowedBackground; + public static GUIStyle shadowedBackground { + get { return _shadowedBackground ?? ( _shadowedBackground = new GUIStyle((GUIStyle)"CurveEditorBackground") ); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Same as box, but saves me the trouble of writing string.empty all the time + public static void Draw(Rect position, GUIStyle style) { + GUI.Box(position, string.Empty, style); + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs.meta new file mode 100644 index 0000000..1faff21 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/Databases/Styles.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2ffba1313f15e5948a23e610947d90b8 +timeCreated: 1510968237 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils.meta new file mode 100644 index 0000000..c817853 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 8d7a98bebbf5f384bad444fe79c2d315 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs new file mode 100644 index 0000000..acab154 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs @@ -0,0 +1,120 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using System.Linq; + + +namespace ParadoxNotion.Design +{ + + /// AssetDatabase related utility + partial class EditorUtils + { + + ///Create asset of type T with a dialog prompt to chose path + public static T CreateAsset() where T : ScriptableObject { + return (T)CreateAsset(typeof(T)); + } + + ///Create asset of type T at target path + public static T CreateAsset(string path) where T : ScriptableObject { + return (T)CreateAsset(typeof(T), path); + } + + ///Create asset of type and show or not the File Panel + public static ScriptableObject CreateAsset(System.Type type) { + ScriptableObject asset = null; + var path = EditorUtility.SaveFilePanelInProject( + "Create Asset of type " + type.ToString(), + type.Name + ".asset", + "asset", ""); + asset = CreateAsset(type, path); + return asset; + } + + ///Create asset of type at target path + public static ScriptableObject CreateAsset(System.Type type, string path) { + if ( string.IsNullOrEmpty(path) ) { + return null; + } + ScriptableObject data = null; + data = ScriptableObject.CreateInstance(type); + AssetDatabase.CreateAsset(data, path); + AssetDatabase.SaveAssets(); + return data; + } + + ///---------------------------------------------------------------------------------------------- + + ///Get a unique path at current project selection for creating an asset, providing the "filename.type" + public static string GetAssetUniquePath(string fileName) { + var path = AssetDatabase.GetAssetPath(Selection.activeObject); + if ( path == "" ) { + path = "Assets"; + } + if ( System.IO.Path.GetExtension(path) != "" ) { + path = path.Replace(System.IO.Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); + } + return AssetDatabase.GenerateUniqueAssetPath(path + "/" + fileName); + } + + ///Get MonoScript reference from type if able + public static MonoScript MonoScriptFromType(System.Type targetType) { + if ( targetType == null ) return null; + var typeName = targetType.Name; + if ( targetType.IsGenericType ) { + targetType = targetType.GetGenericTypeDefinition(); + typeName = typeName.Substring(0, typeName.IndexOf('`')); + } + return AssetDatabase.FindAssets(string.Format("{0} t:MonoScript", typeName)) + .Select(AssetDatabase.GUIDToAssetPath) + .Select(AssetDatabase.LoadAssetAtPath) + .FirstOrDefault(m => m != null && m.GetClass() == targetType); + } + + ///Opens the MonoScript of a type if able + public static bool OpenScriptOfType(System.Type type) { + var mono = MonoScriptFromType(type); + if ( mono != null ) { + AssetDatabase.OpenAsset(mono); + return true; + } + ParadoxNotion.Services.Logger.Log(string.Format("Can't open script of type '{0}', because a script with the same name does not exist.", type.FriendlyName())); + return false; + } + + ///Asset path to absolute system path + public static string AssetToSystemPath(UnityEngine.Object obj) { + var assetPath = AssetDatabase.GetAssetPath(obj); + return AssetToSystemPath(assetPath); + } + + ///Asset path to absolute system path + public static string AssetToSystemPath(string assetPath) { + if ( !string.IsNullOrEmpty(assetPath) ) { + return Application.dataPath.Remove(Application.dataPath.LastIndexOf('/')) + '/' + assetPath; + } + return null; + } + + ///Get all scene names (added in build settings) + public static List GetSceneNames() { + var allSceneNames = new List(); + foreach ( var scene in EditorBuildSettings.scenes ) { + if ( scene.enabled ) { + var name = scene.path.Substring(scene.path.LastIndexOf("/") + 1); + name = name.Substring(0, name.Length - 6); + allSceneNames.Add(name); + } + } + + return allSceneNames; + } + + } +} + + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs.meta new file mode 100644 index 0000000..8a4dcd8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.AssetDatabase.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4676c1c75b3f474da4734cc2fd16c81 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs new file mode 100644 index 0000000..56de223 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs @@ -0,0 +1,408 @@ +#if UNITY_EDITOR + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; + + +namespace ParadoxNotion.Design +{ + + /// ContextMenus, mostly reflection ones + partial class EditorUtils + { + + ///A generic purpose menu to pick an item + public static GenericMenu GetMenu(List options, T current, Action callback) { + var menu = new GenericMenu(); + foreach ( var _option in options ) { + var option = _option; + var label = option != null ? option.ToString() : "null"; + menu.AddItem(new GUIContent(label), object.Equals(current, option), () => { callback(option); }); + } + return menu; + } + + ///Get a selection menu of types deriving base type + public static GenericMenu GetTypeSelectionMenu(Type baseType, Action callback, GenericMenu menu = null, string subCategory = null) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subCategory != null ) { + subCategory = subCategory + "/"; + } + + GenericMenu.MenuFunction2 Selected = delegate (object selectedType) + { + callback((Type)selectedType); + }; + + var scriptInfos = GetScriptInfosOfType(baseType); + + foreach ( var info in scriptInfos.Where(info => string.IsNullOrEmpty(info.category)) ) { + menu.AddItem(new GUIContent(subCategory + info.name), false, info.type != null ? Selected : null, info.type); + } + + foreach ( var info in scriptInfos.Where(info => !string.IsNullOrEmpty(info.category)) ) { + menu.AddItem(new GUIContent(subCategory + info.category + "/" + info.name), false, info.type != null ? Selected : null, info.type); + } + + return menu; + } + + + /// !* Providing an open GenericTypeDefinition for 'baseType', wraps the Preferred Types wihin the 1st Generic Argument of that Definition *! + public static GenericMenu GetPreferedTypesSelectionMenu(Type baseType, Action callback, GenericMenu menu = null, string subCategory = null, bool showAddTypeOption = false) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subCategory != null ) { + subCategory = subCategory + "/"; + } + + var constrainType = baseType; + var isGenericDefinition = baseType.IsGenericTypeDefinition && baseType.RTGetGenericArguments().Length == 1; + var genericDefinitionType = isGenericDefinition ? baseType : null; + if ( isGenericDefinition ) { + constrainType = genericDefinitionType.GetFirstGenericParameterConstraintType(); + } + + GenericMenu.MenuFunction2 Selected = (object t) => { callback((Type)t); }; + + var listTypes = new Dictionary(); + var dictTypes = new Dictionary(); + + foreach ( var t in TypePrefs.GetPreferedTypesList(constrainType, true) ) { + var nsString = t.NamespaceToPath() + "/"; + + var finalType = isGenericDefinition && genericDefinitionType.TryMakeGeneric(t, out Type genericType) ? genericType : t; + var finalString = nsString + finalType.FriendlyName(); + menu.AddItem(new GUIContent(subCategory + finalString), false, Selected, finalType); + + var listType = typeof(List<>).MakeGenericType(t); + var finalListType = isGenericDefinition && genericDefinitionType.TryMakeGeneric(listType, out Type genericListType) ? genericListType : listType; + if ( constrainType.IsAssignableFrom(finalListType) ) { + listTypes[finalListType] = nsString; + } + + var dictType = typeof(Dictionary<,>).MakeGenericType(typeof(string), t); + var finalDictType = isGenericDefinition && genericDefinitionType.TryMakeGeneric(dictType, out Type genericDictType) ? genericDictType : dictType; + if ( constrainType.IsAssignableFrom(finalDictType) ) { + dictTypes[finalDictType] = nsString; + } + + //by request extra append dictionary > + var dictListType = typeof(Dictionary<,>).MakeGenericType(typeof(string), typeof(List<>).MakeGenericType(t)); + var finalDictListType = isGenericDefinition && genericDefinitionType.TryMakeGeneric(dictListType, out Type genericDictListType) ? genericDictListType : dictListType; + if ( constrainType.IsAssignableFrom(finalDictListType) ) { + dictTypes[finalDictListType] = nsString; + } + } + + foreach ( var pair in listTypes ) { + menu.AddItem(new GUIContent(subCategory + TypePrefs.LIST_MENU_STRING + pair.Value + pair.Key.FriendlyName()), false, Selected, pair.Key); + } + + foreach ( var pair in dictTypes ) { + menu.AddItem(new GUIContent(subCategory + TypePrefs.DICT_MENU_STRING + pair.Value + pair.Key.FriendlyName()), false, Selected, pair.Key); + } + + if ( showAddTypeOption ) { + menu.AddItem(new GUIContent(subCategory + "Add Type..."), false, () => { TypePrefsEditorWindow.ShowWindow(); }); + } + + if ( menu.GetItemCount() == 0 ) { + menu.AddDisabledItem(new GUIContent(string.Format("No {0} derived types found in Preferred Types List", baseType.Name))); + } + + return menu; + } + + //... + public static void ShowPreferedTypesSelectionMenu(Type type, Action callback) { + GetPreferedTypesSelectionMenu(type, callback).ShowAsBrowser("Select Type"); + } + + ///---------------------------------------------------------------------------------------------- + + public static GenericMenu GetInstanceFieldSelectionMenu(Type type, Type fieldType, Action callback, GenericMenu menu = null, string subMenu = null) { + return Internal_GetFieldSelectionMenu(BindingFlags.Public | BindingFlags.Instance, type, fieldType, callback, menu, subMenu); + } + + public static GenericMenu GetStaticFieldSelectionMenu(Type type, Type fieldType, Action callback, GenericMenu menu = null, string subMenu = null) { + return Internal_GetFieldSelectionMenu(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy, type, fieldType, callback, menu, subMenu); + } + + ///Get a GenericMenu for field selection in a type + static GenericMenu Internal_GetFieldSelectionMenu(BindingFlags flags, Type type, Type fieldType, Action callback, GenericMenu menu = null, string subMenu = null) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subMenu != null ) { + subMenu = subMenu + "/"; + } + + GenericMenu.MenuFunction2 Selected = delegate (object selectedField) + { + callback((FieldInfo)selectedField); + }; + + foreach ( var field in type.GetFields(flags).Where(field => fieldType.IsAssignableFrom(field.FieldType)) ) { + var inherited = field.DeclaringType != type; + var category = inherited ? subMenu + type.FriendlyName() + "/Inherited" : subMenu + type.FriendlyName(); + menu.AddItem(new GUIContent(string.Format("{0}/{1} : {2}", category, field.Name, field.FieldType.FriendlyName())), false, Selected, field); + } + + return menu; + } + + + ///---------------------------------------------------------------------------------------------- + + public static GenericMenu GetInstancePropertySelectionMenu(Type type, Type propType, Action callback, bool mustRead = true, bool mustWrite = true, GenericMenu menu = null, string subMenu = null) { + return Internal_GetPropertySelectionMenu(BindingFlags.Public | BindingFlags.Instance, type, propType, callback, mustRead, mustWrite, menu, subMenu); + } + + public static GenericMenu GetStaticPropertySelectionMenu(Type type, Type propType, Action callback, bool mustRead = true, bool mustWrite = true, GenericMenu menu = null, string subMenu = null) { + return Internal_GetPropertySelectionMenu(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy, type, propType, callback, mustRead, mustWrite, menu, subMenu); + } + + ///Get a GenericMenu for properties of a type optionaly specifying mustRead & mustWrite + static GenericMenu Internal_GetPropertySelectionMenu(BindingFlags flags, Type type, Type propType, Action callback, bool mustRead = true, bool mustWrite = true, GenericMenu menu = null, string subMenu = null) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subMenu != null ) { + subMenu = subMenu + "/"; + } + + GenericMenu.MenuFunction2 Selected = delegate (object selectedProperty) + { + callback((PropertyInfo)selectedProperty); + }; + + foreach ( var prop in type.GetProperties(flags) ) { + + if ( !prop.CanRead && mustRead ) { + continue; + } + + if ( !prop.CanWrite && mustWrite ) { + continue; + } + + if ( !propType.IsAssignableFrom(prop.PropertyType) ) { + continue; + } + + if ( prop.GetCustomAttributes(typeof(System.ObsoleteAttribute), true).FirstOrDefault() != null ) { + continue; + } + + var inherited = prop.DeclaringType != type; + var category = inherited ? subMenu + type.FriendlyName() + "/Inherited" : subMenu + type.FriendlyName(); + menu.AddItem(new GUIContent(string.Format("{0}/{1} : {2}", category, prop.Name, prop.PropertyType.FriendlyName())), false, Selected, prop); + } + + return menu; + } + + ///---------------------------------------------------------------------------------------------- + + ///Get a menu for instance methods + public static GenericMenu GetInstanceMethodSelectionMenu(Type type, Type returnType, Type acceptedParamsType, System.Action callback, int maxParameters, bool propertiesOnly, bool excludeVoid = false, GenericMenu menu = null, string subMenu = null) { + return Internal_GetMethodSelectionMenu(BindingFlags.Public | BindingFlags.Instance, type, returnType, acceptedParamsType, callback, maxParameters, propertiesOnly, excludeVoid, menu, subMenu); + } + + ///Get a menu for static methods + public static GenericMenu GetStaticMethodSelectionMenu(Type type, Type returnType, Type acceptedParamsType, System.Action callback, int maxParameters, bool propertiesOnly, bool excludeVoid = false, GenericMenu menu = null, string subMenu = null) { + return Internal_GetMethodSelectionMenu(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy, type, returnType, acceptedParamsType, callback, maxParameters, propertiesOnly, excludeVoid, menu, subMenu); + } + + ///Get a GenericMenu for method or property get/set methods selection in a type + static GenericMenu Internal_GetMethodSelectionMenu(BindingFlags flags, Type type, Type returnType, Type acceptedParamsType, System.Action callback, int maxParameters, bool propertiesOnly, bool excludeVoid = false, GenericMenu menu = null, string subMenu = null) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subMenu != null ) { + subMenu = subMenu + "/"; + } + + GenericMenu.MenuFunction2 Selected = delegate (object selectedMethod) + { + callback((MethodInfo)selectedMethod); + }; + + foreach ( var method in type.GetMethods(flags) ) { + + if ( propertiesOnly != method.IsPropertyAccessor() ) { + continue; + } + + if ( method.IsGenericMethod ) { + continue; + } + + if ( !returnType.IsAssignableFrom(method.ReturnType) ) { + continue; + } + + if ( method.ReturnType == typeof(void) && excludeVoid ) { + continue; + } + + var parameters = method.GetParameters(); + if ( parameters.Length > maxParameters && maxParameters != -1 ) { + continue; + } + + if ( parameters.Length > 0 ) { + if ( acceptedParamsType != typeof(object) && parameters.Any(param => !acceptedParamsType.IsAssignableFrom(param.ParameterType)) ) { + continue; + } + } + + MemberInfo member = method; + //get the actual property to check for ObsoleteAttribute + if ( method.Name.StartsWith("get_") || method.Name.StartsWith("set_") ) { + member = method.DeclaringType.GetProperty(method.Name.Replace("get_", "").Replace("set_", "")); + } + if ( member == null || member.RTIsDefined(typeof(System.ObsoleteAttribute), true) ) { + continue; + } + + var inherited = method.DeclaringType != type; + var category = inherited ? subMenu + type.FriendlyName() + "/Inherited" : subMenu + type.FriendlyName(); + menu.AddItem(new GUIContent(category + "/" + method.SignatureName()), false, Selected, method); + } + + return menu; + } + + ///---------------------------------------------------------------------------------------------- + + ///Get a GenericMenu for Instance Events of the type and only event handler type of System.Action + public static GenericMenu GetInstanceEventSelectionMenu(Type type, Type argType, Action callback, GenericMenu menu = null, string subMenu = null) { + return Internal_GetEventSelectionMenu(BindingFlags.Public | BindingFlags.Instance, type, argType, callback, menu, subMenu); + } + + ///Get a GenericMenu for Static Events of the type and only event handler type of System.Action + public static GenericMenu GetStaticEventSelectionMenu(Type type, Type argType, Action callback, GenericMenu menu = null, string subMenu = null) { + return Internal_GetEventSelectionMenu(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy, type, argType, callback, menu, subMenu); + } + + ///Get a GenericMenu for Events of the type and only event handler type of System.Action + static GenericMenu Internal_GetEventSelectionMenu(BindingFlags flags, Type type, Type argType, Action callback, GenericMenu menu = null, string subMenu = null) { + + if ( menu == null ) { + menu = new GenericMenu(); + } + + if ( subMenu != null ) { + subMenu = subMenu + "/"; + } + + GenericMenu.MenuFunction2 Selected = delegate (object selectedEvent) + { + callback((EventInfo)selectedEvent); + }; + + var eventType = argType == null ? typeof(System.Action) : typeof(System.Action<>).MakeGenericType(new Type[] { argType }); + foreach ( var e in type.GetEvents(flags) ) { + if ( e.EventHandlerType == eventType ) { + var eventInfoString = string.Format("{0}({1})", e.Name, argType != null ? argType.FriendlyName() : ""); + menu.AddItem(new GUIContent(subMenu + type.FriendlyName() + "/" + eventInfoString), false, Selected, e); + } + } + + return menu; + } + + ///---------------------------------------------------------------------------------------------- + + + ///MenuItemInfo exposition + public struct MenuItemInfo + { + public bool isValid { get; private set; } + public GUIContent content; + public bool separator; + public bool selected; + public GenericMenu.MenuFunction func; + public GenericMenu.MenuFunction2 func2; + public object userData; + public MenuItemInfo(GUIContent c, bool sep, bool slc, GenericMenu.MenuFunction f1, GenericMenu.MenuFunction2 f2, object o) { + isValid = true; + content = c; + separator = sep; + selected = slc; + func = f1; + func2 = f2; + userData = o; + } + } + + ///Gets an array of MenuItemInfo out of the GenericMenu provided + public static MenuItemInfo[] GetMenuItems(GenericMenu menu) { + + var itemField = typeof(GenericMenu).GetField("menuItems", BindingFlags.Instance | BindingFlags.NonPublic); + if ( itemField == null ) { itemField = typeof(GenericMenu).GetField("m_MenuItems", BindingFlags.Instance | BindingFlags.NonPublic); } + var items = itemField.GetValue(menu) as IList; + if ( items.Count == 0 ) { + return new MenuItemInfo[0]; + } + + var itemType = items[0].GetType(); + var contentGetter = ReflectionTools.GetFieldGetter(itemType.GetField("content")); + var sepGetter = ReflectionTools.GetFieldGetter(itemType.GetField("separator")); + var selectedGetter = ReflectionTools.GetFieldGetter(itemType.GetField("on")); + var func1Getter = ReflectionTools.GetFieldGetter(itemType.GetField("func")); + var func2Getter = ReflectionTools.GetFieldGetter(itemType.GetField("func2")); + var dataGetter = ReflectionTools.GetFieldGetter(itemType.GetField("userData")); + + var result = new List(); + foreach ( var item in items ) { + var content = contentGetter(item); + var separator = sepGetter(item); + var selected = selectedGetter(item); + var func1 = func1Getter(item); + var func2 = func2Getter(item); + var userData = dataGetter(item); + result.Add(new MenuItemInfo(content, separator, selected, func1, func2, userData)); + } + + return result.ToArray(); + } + + ///Shows the Generic Menu as a browser with CompleteContextMenu. + public static void ShowAsBrowser(this GenericMenu menu, Vector2 pos, string title, System.Type keyType = null) { + if ( menu != null ) { GenericMenuBrowser.Show(menu, pos, title, keyType); } + } + + ///Shows the Generic Menu as a browser with CompleteContextMenu. + public static void ShowAsBrowser(this GenericMenu menu, string title, System.Type keyType = null) { + if ( menu != null ) { GenericMenuBrowser.Show(menu, Event.current.mousePosition, title, keyType); } + } + + ///Shortcut + public static void Show(this GenericMenu menu, bool asBrowser, string title, System.Type keyType = null) { + if ( asBrowser ) { menu.ShowAsBrowser(title, keyType); } else { menu.ShowAsContext(); Event.current.Use(); } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs.meta new file mode 100644 index 0000000..dd4ff2b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ContextMenus.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe15795089e56c545803799233bd2512 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs new file mode 100644 index 0000000..d16c969 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs @@ -0,0 +1,382 @@ +#if UNITY_EDITOR + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityObject = UnityEngine.Object; +using Logger = ParadoxNotion.Services.Logger; + +namespace ParadoxNotion.Design +{ + + /// Specific Editor GUIs + partial class EditorUtils + { + + ///Stores fold states + private static readonly Dictionary registeredEditorFoldouts = new Dictionary(); + + + ///A cool label :-P (for headers) + public static void CoolLabel(string text) { + GUI.skin.label.richText = true; + GUI.color = Colors.lightOrange; + GUILayout.Label("" + text + "", Styles.topLeftLabel); + GUI.color = Color.white; + GUILayout.Space(2); + } + + ///Combines the rest functions for a header style label + public static void TitledSeparator(string title) { + GUILayout.Space(1); + BoldSeparator(); + CoolLabel(title + " ▼"); + Separator(); + } + + ///A thin separator + public static void Separator() { + var lastRect = GUILayoutUtility.GetLastRect(); + GUILayout.Space(7); + GUI.color = new Color(0, 0, 0, 0.3f); + GUI.DrawTexture(Rect.MinMaxRect(lastRect.xMin, lastRect.yMax + 4, lastRect.xMax, lastRect.yMax + 6), Texture2D.whiteTexture); + GUI.color = Color.white; + } + + ///A thick separator + public static void BoldSeparator() { + var lastRect = GUILayoutUtility.GetLastRect(); + GUILayout.Space(14); + GUI.color = new Color(0, 0, 0, 0.3f); + GUI.DrawTexture(new Rect(0, lastRect.yMax + 6, Screen.width, 4), Texture2D.whiteTexture); + GUI.DrawTexture(new Rect(0, lastRect.yMax + 6, Screen.width, 1), Texture2D.whiteTexture); + GUI.DrawTexture(new Rect(0, lastRect.yMax + 9, Screen.width, 1), Texture2D.whiteTexture); + GUI.color = Color.white; + } + + ///Just a fancy ending for inspectors + public static void EndOfInspector() { + var lastRect = GUILayoutUtility.GetLastRect(); + GUILayout.Space(8); + GUI.color = new Color(0, 0, 0, 0.4f); + GUI.DrawTexture(new Rect(0, lastRect.yMax + 6, Screen.width, 4), Texture2D.whiteTexture); + GUI.DrawTexture(new Rect(0, lastRect.yMax + 4, Screen.width, 1), Texture2D.whiteTexture); + GUI.color = Color.white; + } + + ///A Search Field + public static string SearchField(string search) { + GUILayout.BeginHorizontal(); + search = EditorGUILayout.TextField(search, Styles.toolbarSearchTextField); + if ( !string.IsNullOrEmpty(search) && GUILayout.Button(string.Empty, Styles.toolbarSearchCancelButton) ) { + search = string.Empty; + GUIUtility.keyboardControl = 0; + } + GUILayout.EndHorizontal(); + return search; + } + + ///Used just after a textfield with no prefix to show an italic transparent text inside when empty + public static void CommentLastTextField(string check, string comment = "Comments...") { + if ( string.IsNullOrEmpty(check) ) { + var lastRect = GUILayoutUtility.GetLastRect(); + GUI.Label(lastRect, " " + comment + "", Styles.topLeftLabel); + } + } + + ///Used just after a field to highlight it + public static void HighlightLastField() { + var lastRect = GUILayoutUtility.GetLastRect(); + lastRect.xMin += 2; + lastRect.xMax -= 2; + lastRect.yMax -= 4; + Styles.Draw(lastRect, Styles.highlightBox); + } + + ///Used just after a field to mark it as a prefab override (similar to native unity's one) + public static void MarkLastFieldOverride() { + var rect = GUILayoutUtility.GetLastRect(); + rect.x -= 3; rect.width = 2; + GUI.color = Colors.prefabOverrideColor; + GUI.DrawTexture(rect, Texture2D.whiteTexture); + GUI.color = Color.white; + } + + ///Used just after a field to mark warning icon to it + public static void MarkLastFieldWarning(string tooltip) { + Internal_MarkLastField(ParadoxNotion.Design.Icons.warningIcon, tooltip); + } + + ///Used just after a field to mark warning icon to it + public static void MarkLastFieldError(string tooltip) { + Internal_MarkLastField(ParadoxNotion.Design.Icons.errorIcon, tooltip); + } + + //... + static void Internal_MarkLastField(Texture2D icon, string tooltip) { + var rect = GUILayoutUtility.GetLastRect(); + rect.x += UnityEditor.EditorGUIUtility.labelWidth; + rect.x -= 16; + rect.y += 1; + rect.width = 16; + rect.height = 16; + GUI.Box(rect, EditorUtils.GetTempContent(null, icon, tooltip), GUIStyle.none); + } + + // public static Rect BeginHighlightArea() { + // var rect = GUILayoutUtility.GetLastRect(); + // GUILayout.BeginVertical(); + // return rect; + // } + + // public static void EndHighlightArea(Rect beginRect) { + // GUILayout.EndVertical(); + // var last = GUILayoutUtility.GetLastRect(); + // var rect = Rect.MinMaxRect(beginRect.xMin, beginRect.yMin, last.xMax, last.yMax); + // Styles.Draw(rect, Styles.highlightBox); + // } + + ///Editor for LayerMask + public static LayerMask LayerMaskField(string prefix, LayerMask layerMask, params GUILayoutOption[] layoutOptions) { + return LayerMaskField(string.IsNullOrEmpty(prefix) ? GUIContent.none : new GUIContent(prefix), layerMask, layoutOptions); + } + + ///Editor for LayerMask + public static LayerMask LayerMaskField(GUIContent content, LayerMask layerMask, params GUILayoutOption[] layoutOptions) { + LayerMask tempMask = EditorGUILayout.MaskField(content, UnityEditorInternal.InternalEditorUtility.LayerMaskToConcatenatedLayersMask(layerMask), UnityEditorInternal.InternalEditorUtility.layers, layoutOptions); + layerMask = UnityEditorInternal.InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(tempMask); + return layerMask; + } + + ///Do a cached editor Foldout based on provided key object + public static bool CachedFoldout(Type key, GUIContent content) { + var foldout = false; + registeredEditorFoldouts.TryGetValue(key, out foldout); + foldout = EditorGUILayout.Foldout(foldout, content); + return registeredEditorFoldouts[key] = foldout; + } + + ///An IList editor (List and Arrays) + public static IList ListEditor(GUIContent content, IList list, Type listType, InspectedFieldInfo info) { + + var optionsAtt = info.attributes?.FirstOrDefault(x => x is ListInspectorOptionAttribute) as ListInspectorOptionAttribute; + + var argType = listType.GetEnumerableElementType(); + if ( argType == null ) { + return list; + } + + if ( object.Equals(list, null) ) { + GUILayout.Label("Null List"); + return list; + } + + if ( optionsAtt == null || optionsAtt.showFoldout ) { + if ( !CachedFoldout(listType, content) ) { + return list; + } + } else { + GUILayout.Label(content.text); + } + + GUILayout.BeginVertical(); + EditorGUI.indentLevel++; + + var options = new ReorderableListOptions(); + options.allowAdd = optionsAtt == null || optionsAtt.allowAdd; + options.allowRemove = optionsAtt == null || optionsAtt.allowRemove; + options.unityObjectContext = info.unityObjectContext; + list = EditorUtils.ReorderableList(list, options, (i, r) => + { + list[i] = ReflectedFieldInspector("Element " + i, list[i], argType, info); + }); + + EditorGUI.indentLevel--; + Separator(); + GUILayout.EndVertical(); + return list; + } + + ///A IDictionary editor + public static IDictionary DictionaryEditor(GUIContent content, IDictionary dict, Type dictType, InspectedFieldInfo info) { + + var keyType = dictType.RTGetGenericArguments()[0]; + var valueType = dictType.RTGetGenericArguments()[1]; + + if ( object.Equals(dict, null) ) { + GUILayout.Label("Null Dictionary"); + return dict; + } + + if ( !CachedFoldout(dictType, content) ) { + return dict; + } + + GUILayout.BeginVertical(); + + var keys = dict.Keys.Cast().ToList(); + var values = dict.Values.Cast().ToList(); + + if ( GUILayout.Button("Add Element") ) { + if ( !typeof(UnityObject).IsAssignableFrom(keyType) ) { + object newKey = null; + if ( keyType == typeof(string) ) { + newKey = string.Empty; + } else { + newKey = Activator.CreateInstance(keyType); + } + + if ( dict.Contains(newKey) ) { + Logger.LogWarning(string.Format("Key '{0}' already exists in Dictionary", newKey.ToString()), "Editor"); + return dict; + } + + keys.Add(newKey); + + } else { + Logger.LogWarning("Can't add a 'null' Dictionary Key", "Editor"); + return dict; + } + + values.Add(valueType.IsValueType ? Activator.CreateInstance(valueType) : null); + } + + for ( var i = 0; i < keys.Count; i++ ) { + GUILayout.BeginHorizontal("box"); + GUILayout.Box("", GUILayout.Width(6), GUILayout.Height(35)); + + GUILayout.BeginVertical(); + keys[i] = ReflectedFieldInspector("K:", keys[i], keyType, info); + values[i] = ReflectedFieldInspector("V:", values[i], valueType, info); + GUILayout.EndVertical(); + + if ( GUILayout.Button("X", GUILayout.Width(18), GUILayout.Height(34)) ) { + keys.RemoveAt(i); + values.RemoveAt(i); + } + + GUILayout.EndHorizontal(); + } + + //clear and reconstruct on separate pass after GUI controls + dict.Clear(); + for ( var i = 0; i < keys.Count; i++ ) { + try { dict.Add(keys[i], values[i]); } + catch { Logger.Log("Dictionary Key removed due to duplicate found", "Editor"); } + } + + Separator(); + + GUILayout.EndVertical(); + return dict; + } + + + ///An editor field where if the component is null simply shows an object field, but if its not, shows a dropdown popup to select the specific component from within the gameobject + public static Component ComponentField(GUIContent content, Component comp, Type type, params GUILayoutOption[] GUIOptions) { + + if ( comp == null ) { + return EditorGUILayout.ObjectField(content, comp, type, true, GUIOptions) as Component; + } + + var components = comp.GetComponents(type).ToList(); + var componentNames = components.Where(c => c != null).Select(c => c.GetType().FriendlyName() + " (" + c.gameObject.name + ")").ToList(); + componentNames.Insert(0, "[NONE]"); + + var index = components.IndexOf(comp); + index = EditorGUILayout.Popup(content, index, componentNames.Select(n => new GUIContent(n)).ToArray(), GUIOptions); + return index == 0 ? null : components[index]; + } + + + ///A popup that is based on the string rather than the index + public static string StringPopup(GUIContent content, string selected, IEnumerable options, params GUILayoutOption[] GUIOptions) { + EditorGUILayout.BeginVertical(); + var index = 0; + var copy = new List(options); + copy.Insert(0, "[NONE]"); + index = copy.Contains(selected) ? copy.IndexOf(selected) : 0; + index = EditorGUILayout.Popup(content, index, copy.Select(n => new GUIContent(n)).ToArray(), GUIOptions); + EditorGUILayout.EndVertical(); + return index == 0 ? string.Empty : copy[index]; + } + + + ///Generic Popup for selection of any element within a list + public static T Popup(T selected, IEnumerable options, params GUILayoutOption[] GUIOptions) { + return Popup(GUIContent.none, selected, options, GUIOptions); + } + + ///Generic Popup for selection of any element within a list + public static T Popup(string prefix, T selected, IEnumerable options, params GUILayoutOption[] GUIOptions) { + return Popup(string.IsNullOrEmpty(prefix) ? GUIContent.none : new GUIContent(prefix), selected, options, GUIOptions); + } + + ///Generic Popup for selection of any element within a list + public static T Popup(GUIContent content, T selected, IEnumerable options, params GUILayoutOption[] GUIOptions) { + var listOptions = new List(options); + listOptions.Insert(0, default(T)); + var stringedOptions = new List(listOptions.Select(o => o != null ? o.ToString() : "[NONE]")); + stringedOptions[0] = listOptions.Count == 1 ? "[NONE AVAILABLE]" : "[NONE]"; + + var index = 0; + if ( listOptions.Contains(selected) ) { + index = listOptions.IndexOf(selected); + } + + var wasEnable = GUI.enabled; + GUI.enabled = wasEnable && stringedOptions.Count > 1; + index = EditorGUILayout.Popup(content, index, stringedOptions.Select(s => new GUIContent(s)).ToArray(), GUIOptions); + GUI.enabled = wasEnable; + return index == 0 ? default(T) : listOptions[index]; + } + + + ///Generic Button Popup for selection of any element within a list + public static void ButtonPopup(string prefix, T selected, List options, Action Callback) { + ButtonPopup(string.IsNullOrEmpty(prefix) ? GUIContent.none : new GUIContent(prefix), selected, options, Callback); + } + + ///Generic Button Popup for selection of any element within a list + public static void ButtonPopup(GUIContent content, T selected, List options, Action Callback) { + var buttonText = selected != null ? selected.ToString() : "[NONE]"; + GUILayout.BeginHorizontal(); + if ( content != null && content != GUIContent.none ) { + GUILayout.Label(content, GUILayout.Width(0), GUILayout.ExpandWidth(true)); + } + if ( GUILayout.Button(buttonText, (GUIStyle)"MiniPopup", GUILayout.Width(0), GUILayout.ExpandWidth(true)) ) { + var menu = new GenericMenu(); + foreach ( var _option in options ) { + var option = _option; + menu.AddItem(new GUIContent(option != null ? option.ToString() : "[NONE]"), object.Equals(selected, option), () => { Callback(option); }); + } + menu.ShowAsBrowser("Select Option"); + } + GUILayout.EndHorizontal(); + } + + ///Specialized Type button popup + public static void ButtonTypePopup(string prefix, Type selected, Action Callback) { + ButtonTypePopup(string.IsNullOrEmpty(prefix) ? GUIContent.none : new GUIContent(prefix), selected, Callback); + } + + ///Specialized Type button popup + public static void ButtonTypePopup(GUIContent content, Type selected, Action Callback) { + var buttonText = selected != null ? selected.FriendlyName() : "[NONE]"; + GUILayout.BeginHorizontal(); + if ( content != null && content != GUIContent.none ) { + GUILayout.Label(content, GUILayout.Width(0), GUILayout.ExpandWidth(true)); + } + if ( GUILayout.Button(buttonText, (GUIStyle)"MiniPopup", GUILayout.Width(0), GUILayout.ExpandWidth(true)) ) { + var menu = EditorUtils.GetPreferedTypesSelectionMenu(typeof(object), Callback); + menu.ShowAsBrowser("Select Type"); + } + GUILayout.EndHorizontal(); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs.meta new file mode 100644 index 0000000..d4b0384 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.GUIEditors.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b2198a3a4aa5b44199f1deba4b3ed80 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs new file mode 100644 index 0000000..cfa2467 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs @@ -0,0 +1,309 @@ +#if UNITY_EDITOR + +using System; +using System.Collections; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityObject = UnityEngine.Object; + + +namespace ParadoxNotion.Design +{ + + ///Automatic Inspector functions + partial class EditorUtils + { + + private static GUIContent tempContent; + + ///A cached temporary content + public static GUIContent GetTempContent(string text = "", Texture image = null, string tooltip = null) { + if ( tempContent == null ) { tempContent = new GUIContent(); } + tempContent.text = text; + tempContent.image = image; + tempContent.tooltip = tooltip; + return tempContent; + } + + ///A cached temporary content + public static GUIContent GetTempContent(Texture image = null, string tooltip = null) { + return GetTempContent(null, image, tooltip); + } + + ///Show an automatic editor GUI inspector for target object, taking into account drawer attributes + public static void ReflectedObjectInspector(object target, UnityObject unityObjectContext) { + + if ( target == null ) { + return; + } + + var fields = target.GetType().RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var field = fields[i]; + + //no statics + if ( field.IsStatic ) { continue; } + + //hide type altogether? + if ( field.FieldType.RTIsDefined(typeof(HideInInspector), true) ) { continue; } + + //inspect only public fields or private fields with the [ExposeField] attribute + if ( field.IsPublic || field.RTIsDefined(typeof(ExposeFieldAttribute), true) ) { + var attributes = field.RTGetAllAttributes(); + //Hide field? + if ( attributes.Any(a => a is HideInInspector) ) { continue; } + var serializationInfo = new InspectedFieldInfo(unityObjectContext, field, target, attributes); + var currentValue = field.GetValue(target); + var newValue = ReflectedFieldInspector(field.Name, currentValue, field.FieldType, serializationInfo); + + var changed = !object.Equals(newValue, currentValue); + if ( changed ) { UndoUtility.RecordObject(unityObjectContext, field.Name); } + if ( changed || field.FieldType.IsValueType ) { + field.SetValue(target, newValue); + } + if ( changed ) { UndoUtility.SetDirty(unityObjectContext); } + } + } + } + + + ///Draws an Editor field for object of type directly WITH taking into acount object drawers and drawer attributes + public static object ReflectedFieldInspector(string name, object value, Type t, InspectedFieldInfo info) { + var content = GetTempContent(name.SplitCamelCase()); + if ( info.attributes != null ) { + //Create proper GUIContent + var nameAtt = info.attributes.FirstOrDefault(a => a is NameAttribute) as NameAttribute; + if ( nameAtt != null ) { content.text = nameAtt.name; } + + var tooltipAtt = info.attributes.FirstOrDefault(a => a is TooltipAttribute) as TooltipAttribute; + if ( tooltipAtt != null ) { content.tooltip = tooltipAtt.tooltip; } + } + + return ReflectedFieldInspector(content, value, t, info); + } + + ///Draws an Editor field for object of type directly WITH taking into acount object drawers and drawer attributes + public static object ReflectedFieldInspector(GUIContent content, object value, Type t, InspectedFieldInfo info) { + + if ( t == null ) { + GUILayout.Label("NO TYPE PROVIDED!"); + return value; + } + + //Use drawers + var objectDrawer = PropertyDrawerFactory.GetObjectDrawer(t); + var newValue = objectDrawer.DrawGUI(content, value, info); + var changed = !object.Equals(newValue, value); + if ( changed ) { UndoUtility.RecordObjectComplete(info.unityObjectContext, content.text + "Field Change"); } + value = newValue; + if ( changed ) { UndoUtility.SetDirty(info.unityObjectContext); } + return value; + } + + + ///Draws an Editor field for object of type directly WITHOUT taking into acount object drawers and drawer attributes unless provided + public static object DrawEditorFieldDirect(GUIContent content, object value, Type t, InspectedFieldInfo info) { + + ///---------------------------------------------------------------------------------------------- + bool handled; + EditorGUI.BeginChangeCheck(); + var newValue = DirectFieldControl(content, value, t, info.unityObjectContext, info.attributes, out handled); + var changed = !object.Equals(newValue, value) || EditorGUI.EndChangeCheck(); + if ( changed ) { UndoUtility.RecordObjectComplete(info.unityObjectContext, content.text + "Field Change"); } + value = newValue; + if ( changed ) { UndoUtility.SetDirty(info.unityObjectContext); } + if ( handled ) { return value; } + ///---------------------------------------------------------------------------------------------- + + + if ( typeof(IList).IsAssignableFrom(t) ) { + return ListEditor(content, (IList)value, t, info); + } + + if ( typeof(IDictionary).IsAssignableFrom(t) ) { + return DictionaryEditor(content, (IDictionary)value, t, info); + } + + //show nested class members recursively, avoid all collections not handles above manually + if ( value != null && ( t.IsClass || t.IsValueType ) && !typeof(ICollection).IsAssignableFrom(t) ) { + + if ( EditorGUI.indentLevel <= 8 ) { + + if ( !CachedFoldout(t, content) ) { + return value; + } + + EditorGUI.indentLevel++; + ReflectedObjectInspector(value, info.unityObjectContext); + EditorGUI.indentLevel--; + } + + } else { + + EditorGUILayout.LabelField(content, new GUIContent(string.Format("NonInspectable ({0})", t.FriendlyName()))); + } + + return value; + } + + //... + public static object DirectFieldControl(GUIContent content, object value, Type t, UnityEngine.Object unityObjectContext, object[] attributes, out bool handled, params GUILayoutOption[] options) { + + handled = true; + + //Check scene object type for UnityObjects. Consider Interfaces as scene object type. Assume that user uses interfaces with UnityObjects + if ( typeof(UnityObject).IsAssignableFrom(t) || t.IsInterface ) { + if ( value == null || value is UnityObject ) { //check this to avoid case of interface but no unityobject + var isSceneObjectType = ( typeof(Component).IsAssignableFrom(t) || t == typeof(GameObject) || t == typeof(UnityObject) || t.IsInterface ); + var newValue = EditorGUILayout.ObjectField(content, (UnityObject)value, t, isSceneObjectType, options); + if ( unityObjectContext != null && newValue != null ) { + if ( !Application.isPlaying && EditorUtility.IsPersistent(unityObjectContext) && !EditorUtility.IsPersistent(newValue as UnityEngine.Object) ) { + ParadoxNotion.Services.Logger.LogWarning("Assets can not have scene object references", "Editor", unityObjectContext); + newValue = value as UnityObject; + } + } + return newValue; + } + } + + //Check Type second + if ( t == typeof(Type) ) { + return Popup(content, (Type)value, TypePrefs.GetPreferedTypesList(true), options); + } + + //get real current type + t = value != null ? value.GetType() : t; + + //for these just show type information + if ( t.IsAbstract || t == typeof(object) || typeof(Delegate).IsAssignableFrom(t) || typeof(UnityEngine.Events.UnityEventBase).IsAssignableFrom(t) ) { + EditorGUILayout.LabelField(content, new GUIContent(string.Format("({0})", t.FriendlyName())), options); + return value; + } + + //create instance for value types + if ( value == null && t.RTIsValueType() ) { + value = System.Activator.CreateInstance(t); + } + + //create new instance with button for non value types + if ( value == null && !t.IsAbstract && !t.IsInterface && ( t.IsArray || t.GetConstructor(Type.EmptyTypes) != null ) ) { + if ( content != GUIContent.none ) { + GUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel(content, GUI.skin.button); + } + if ( GUILayout.Button("(null) Create", options) ) { + value = t.IsArray ? Array.CreateInstance(t.GetElementType(), 0) : Activator.CreateInstance(t); + } + if ( content != GUIContent.none ) { GUILayout.EndHorizontal(); } + return value; + } + + + ///---------------------------------------------------------------------------------------------- + + + if ( t == typeof(string) ) { + return EditorGUILayout.TextField(content, (string)value, options); + } + + if ( t == typeof(char) ) { + var c = (char)value; + var s = c.ToString(); + s = EditorGUILayout.TextField(content, s, options); + return string.IsNullOrEmpty(s) ? (char)c : (char)s[0]; + } + + if ( t == typeof(bool) ) { + return EditorGUILayout.Toggle(content, (bool)value, options); + } + + if ( t == typeof(int) ) { + return EditorGUILayout.IntField(content, (int)value, options); + } + + if ( t == typeof(float) ) { + return EditorGUILayout.FloatField(content, (float)value, options); + } + + if ( t == typeof(byte) ) { + return Convert.ToByte(Mathf.Clamp(EditorGUILayout.IntField(content, (byte)value, options), 0, 255)); + } + + if ( t == typeof(long) ) { + return EditorGUILayout.LongField(content, (long)value, options); + } + + if ( t == typeof(double) ) { + return EditorGUILayout.DoubleField(content, (double)value, options); + } + + if ( t == typeof(Vector2) ) { + return EditorGUILayout.Vector2Field(content, (Vector2)value, options); + } + + if ( t == typeof(Vector2Int) ) { + return EditorGUILayout.Vector2IntField(content, (Vector2Int)value, options); + } + + if ( t == typeof(Vector3) ) { + return EditorGUILayout.Vector3Field(content, (Vector3)value, options); + } + + if ( t == typeof(Vector3Int) ) { + return EditorGUILayout.Vector3IntField(content, (Vector3Int)value, options); + } + + if ( t == typeof(Vector4) ) { + return EditorGUILayout.Vector4Field(content, (Vector4)value, options); + } + + if ( t == typeof(Quaternion) ) { + var quat = (Quaternion)value; + var vec4 = new Vector4(quat.x, quat.y, quat.z, quat.w); + vec4 = EditorGUILayout.Vector4Field(content, vec4, options); + return new Quaternion(vec4.x, vec4.y, vec4.z, vec4.w); + } + + if ( t == typeof(Color) ) { + var att = attributes?.FirstOrDefault(a => a is ColorUsageAttribute) as ColorUsageAttribute; + var hdr = att != null ? att.hdr : false; + var showAlpha = att != null ? att.showAlpha : true; + return EditorGUILayout.ColorField(content, (Color)value, true, showAlpha, hdr, options); + } + + if ( t == typeof(Gradient) ) { + return EditorGUILayout.GradientField(content, (Gradient)value, options); + } + + if ( t == typeof(Rect) ) { + return EditorGUILayout.RectField(content, (Rect)value, options); + } + + if ( t == typeof(AnimationCurve) ) { + return EditorGUILayout.CurveField(content, (AnimationCurve)value, options); + } + + if ( t == typeof(Bounds) ) { + return EditorGUILayout.BoundsField(content, (Bounds)value, options); + } + + if ( t == typeof(LayerMask) ) { + return LayerMaskField(content, (LayerMask)value, options); + } + + if ( t.IsSubclassOf(typeof(System.Enum)) ) { + if ( t.RTIsDefined(typeof(FlagsAttribute), true) ) { + return EditorGUILayout.EnumFlagsField(content, (System.Enum)value, options); + } + return EditorGUILayout.EnumPopup(content, (System.Enum)value, options); + } + + handled = false; + return value; + } + + } +} + +#endif diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs.meta new file mode 100644 index 0000000..4c47e1e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReflectedInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f82d383bba56d6a4d87929dcd962745a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs new file mode 100644 index 0000000..95139c1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs @@ -0,0 +1,217 @@ +#if UNITY_EDITOR + +using System.Collections; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityObject = UnityEngine.Object; + +namespace ParadoxNotion.Design +{ + + partial class EditorUtils + { + + public delegate void ReorderableListCallback(int index, bool isPicked); + + private static int pickedListIndex = -1; + private static IList pickedList; + + public struct ReorderableListOptions + { + public delegate GenericMenu GetItemMenuDelegate(int i); + public bool blockReorder; + public bool allowAdd; + public bool allowRemove; + public UnityObject unityObjectContext; + public GetItemMenuDelegate customItemMenu; + } + + /// A simple reorderable list. Pass the list and a function to call for GUI. The callback comes with the current iterated element index in the list + public static IList ReorderableList(IList list, ReorderableListCallback GUICallback) { + return ReorderableList(list, default(ReorderableListOptions), GUICallback); + } + + /// A simple reorderable list. Pass the list and a function to call for GUI. The callback comes with the current iterated element index in the list + public static IList ReorderableList(IList list, ReorderableListOptions options, ReorderableListCallback GUICallback) { + + if ( list == null ) { + return null; + } + + var listType = list.GetType(); + var argType = listType.GetEnumerableElementType(); + if ( argType == null ) { + return list; + } + + var e = Event.current; + + if ( options.allowAdd ) { + + var dropRefs = DragAndDrop.objectReferences; + + //Drag And Drop. + if ( dropRefs.Length > 0 ) { + if ( dropRefs.Any(r => argType.IsAssignableFrom(r.GetType()) || ( r.GetType() == typeof(GameObject) && typeof(Component).IsAssignableFrom(argType) )) ) { + var dropRect = GUILayoutUtility.GetRect(0, 20, GUILayout.ExpandWidth(true)); + dropRect.xMin += 5; + dropRect.xMax -= 5; + Styles.Draw(dropRect, Styles.roundedBox); + GUI.Box(dropRect, "Drop Here to Enlist", Styles.centerLabel); + if ( dropRect.Contains(e.mousePosition) ) { + if ( e.type == EventType.DragUpdated ) { + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + e.Use(); + } + if ( e.type == EventType.DragPerform ) { + for ( var i = 0; i < dropRefs.Length; i++ ) { + var dropRef = dropRefs[i]; + var dropRefType = dropRef.GetType(); + if ( argType.IsAssignableFrom(dropRefType) ) { + UndoUtility.RecordObject(options.unityObjectContext, "Drag Add Item"); + list.Add(dropRef); + GUI.changed = true; + UndoUtility.SetDirty(options.unityObjectContext); + continue; + } + if ( dropRefType == typeof(GameObject) && typeof(Component).IsAssignableFrom(argType) ) { + var componentToAdd = ( dropRef as GameObject ).GetComponent(argType); + if ( componentToAdd != null ) { + UndoUtility.RecordObject(options.unityObjectContext, "Drag Add Item"); + list.Add(componentToAdd); + GUI.changed = true; + UndoUtility.SetDirty(options.unityObjectContext); + } + continue; + } + } + e.Use(); + } + } + } + } + + //Add new default element + if ( dropRefs.Length == 0 ) { + if ( GUILayout.Button("Add Element") ) { + UndoUtility.RecordObject(options.unityObjectContext, "Add Item"); + var o = argType.IsValueType ? argType.CreateObjectUninitialized() : null; + if ( listType.IsArray ) { + list = ReflectionTools.Resize((System.Array)list, list.Count + 1); + } else { + list.Add(o); + } + GUI.changed = true; + UndoUtility.SetDirty(options.unityObjectContext); + return list; + } + } + + } + + if ( list.Count == 0 ) { + return list; + } + + for ( var i = 0; i < list.Count; i++ ) { + GUILayout.BeginHorizontal(); + GUILayout.Space(16); + GUILayout.BeginVertical(); + GUICallback(i, pickedListIndex == i && pickedList == list); + GUILayout.EndVertical(); + var lastRect = GUILayoutUtility.GetLastRect(); + var pickRect = Rect.MinMaxRect(lastRect.xMin - 16, lastRect.yMin, lastRect.xMin, lastRect.yMax); + GUI.color = new Color(1, 1, 1, 0.5f); + GUI.Label(pickRect, options.blockReorder ? EditorUtils.GetTempContent("■", null, "Re-Ordering Is Disabled") : EditorUtils.GetTempContent("☰"), Styles.centerLabel); + GUI.color = Color.white; + if ( options.customItemMenu != null ) { + GUILayout.Space(18); + var buttonRect = Rect.MinMaxRect(lastRect.xMax, lastRect.yMin, lastRect.xMax + 22, lastRect.yMax + 1); + EditorGUIUtility.AddCursorRect(buttonRect, MouseCursor.Link); + GUI.color = EditorGUIUtility.isProSkin ? Color.white : Color.grey; + if ( GUI.Button(buttonRect, Icons.gearPopupIcon, Styles.centerLabel) ) { + UndoUtility.RecordObject(options.unityObjectContext, "Menu Item"); + options.customItemMenu(i).ShowAsContext(); + GUI.changed = true; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + UndoUtility.SetDirty(options.unityObjectContext); + } + GUI.color = Color.white; + } + if ( options.allowRemove ) { + GUILayout.Space(20); + var buttonRect = Rect.MinMaxRect(lastRect.xMax + 2, lastRect.yMin, lastRect.xMax + 20, lastRect.yMax); + if ( GUI.Button(buttonRect, "X") ) { + UndoUtility.RecordObject(options.unityObjectContext, "Remove Item"); + if ( listType.IsArray ) { + list = ReflectionTools.Resize((System.Array)list, list.Count - 1); + } else { + list.RemoveAt(i); + } + GUI.changed = true; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + UndoUtility.SetDirty(options.unityObjectContext); + } + } + GUILayout.EndHorizontal(); + + GUI.color = Color.white; + GUI.backgroundColor = Color.white; + + if ( !options.blockReorder ) { EditorGUIUtility.AddCursorRect(pickRect, MouseCursor.MoveArrow); } + var boundRect = GUILayoutUtility.GetLastRect(); + + if ( pickRect.Contains(e.mousePosition) && e.type == EventType.MouseDown && !options.blockReorder ) { + pickedList = list; + pickedListIndex = i; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + e.Use(); + } + + if ( pickedList == list ) { + if ( pickedListIndex == i ) { + GUI.Box(boundRect, string.Empty); + } + + if ( pickedListIndex != -1 && pickedListIndex != i && boundRect.Contains(e.mousePosition) ) { + + var markRect = new Rect(boundRect.x, boundRect.y - 2, boundRect.width, 2); + if ( pickedListIndex < i ) { + markRect.y = boundRect.yMax - 2; + } + + GUI.DrawTexture(markRect, Texture2D.whiteTexture); + if ( e.type == EventType.MouseUp ) { + UndoUtility.RecordObject(options.unityObjectContext, "Reorder Item"); + var pickObj = list[pickedListIndex]; + list.RemoveAt(pickedListIndex); + list.Insert(i, pickObj); + GUI.changed = true; + UndoUtility.SetDirty(options.unityObjectContext); + pickedList = null; + pickedListIndex = -1; + e.Use(); + } + } + } + + } + + //just rest in case out of rect + if ( e.rawType == EventType.MouseUp ) { + if ( list == pickedList ) { + pickedList = null; + pickedListIndex = -1; + } + } + + return list; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs.meta new file mode 100644 index 0000000..7500c81 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ReorderableList.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b97faf2d46c8ec043a8f0b20f9024058 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs new file mode 100644 index 0000000..84b6ef5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs @@ -0,0 +1,150 @@ +#if UNITY_EDITOR + +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; + +namespace ParadoxNotion.Design +{ + + //reflection meta info + partial class EditorUtils + { + + [InitializeOnLoadMethod] + static void Initialize_ScriptInfos() { + TypePrefs.onPreferredTypesChanged -= FlushScriptInfos; + TypePrefs.onPreferredTypesChanged += FlushScriptInfos; + } + + //Flush script infos cache + public static void FlushScriptInfos() { + cachedInfos = null; + } + + //For gathering script/type meta-information + public struct ScriptInfo + { + public bool isValid { get; private set; } + + public Type originalType; + public string originalName; + public string originalCategory; + + public Type type; + public string name; + public string category; + public int priority; + + public ScriptInfo(Type type, string name, string category, int priority) { + this.isValid = true; + this.originalType = type; + this.originalName = name; + this.originalCategory = category; + + this.type = type; + this.name = name; + this.category = category; + this.priority = priority; + } + } + + ///Get a list of ScriptInfos of the baseType excluding: the base type, abstract classes, Obsolete classes and those with the DoNotList attribute, categorized as a list of ScriptInfo + private static Dictionary> cachedInfos; + public static List GetScriptInfosOfType(Type baseType) { + + if ( cachedInfos == null ) { cachedInfos = new Dictionary>(); } + + List infosResult; + if ( cachedInfos.TryGetValue(baseType, out infosResult) ) { + return infosResult.ToList(); + } + + infosResult = new List(); + + var subTypes = baseType.IsGenericTypeDefinition ? new Type[] { baseType } : ReflectionTools.GetImplementationsOf(baseType); + foreach ( var subType in subTypes ) { + + if ( subType.IsAbstract || subType.RTIsDefined(typeof(DoNotListAttribute), true) || subType.RTIsDefined(typeof(ObsoleteAttribute), true) ) { + continue; + } + + var isGeneric = subType.IsGenericTypeDefinition && subType.RTGetGenericArguments().Length == 1; + var scriptName = subType.FriendlyName().SplitCamelCase(); + var scriptCategory = string.Empty; + var scriptPriority = 0; + + var nameAttribute = subType.RTGetAttribute(true); + if ( nameAttribute != null ) { + scriptPriority = nameAttribute.priority; + scriptName = nameAttribute.name; + if ( isGeneric && !scriptName.EndsWith("") ) { + scriptName += " (T)"; + } + } + + var categoryAttribute = subType.RTGetAttribute(true); + if ( categoryAttribute != null ) { + scriptCategory = categoryAttribute.category; + } + + var info = new ScriptInfo(subType, scriptName, scriptCategory, scriptPriority); + + //add the generic types based on constrains and prefered types list + if ( isGeneric ) { + var exposeAsBaseDefinition = NodeCanvas.Editor.Prefs.collapseGenericTypes || subType.RTIsDefined(true); + if ( !exposeAsBaseDefinition ) { + var typesToWrap = TypePrefs.GetPreferedTypesList(true); + foreach ( var t in typesToWrap ) { + infosResult.Add(info.MakeGenericInfo(t, string.Format("/{0}/{1}", info.name, t.NamespaceToPath()))); + infosResult.Add(info.MakeGenericInfo(typeof(List<>).MakeGenericType(t), string.Format("/{0}/{1}{2}", info.name, TypePrefs.LIST_MENU_STRING, t.NamespaceToPath()), -1)); + infosResult.Add(info.MakeGenericInfo(typeof(Dictionary<,>).MakeGenericType(typeof(string), t), string.Format("/{0}/{1}{2}", info.name, TypePrefs.DICT_MENU_STRING, t.NamespaceToPath()), -2)); + + //by request extra append dictionary > + infosResult.Add(info.MakeGenericInfo(typeof(Dictionary<,>).MakeGenericType(typeof(string), typeof(List<>).MakeGenericType (t) ), string.Format("/{0}/{1}{2}", info.name, TypePrefs.DICT_MENU_STRING, t.NamespaceToPath()), -2)); + } + continue; + } + } + + infosResult.Add(info); + } + + infosResult = infosResult + .Where(s => s.isValid) + .OrderBy(s => s.originalCategory) + .ThenBy(s => s.priority * -1) + .ThenBy(s => s.originalName) + .ToList(); + cachedInfos[baseType] = infosResult; + return infosResult; + } + + ///Makes and returns a closed generic ScriptInfo for targetType out of an existing ScriptInfo + public static ScriptInfo MakeGenericInfo(this ScriptInfo info, Type targetType, string subCategory = null, int priorityShift = 0) { + if ( !info.isValid || !info.originalType.IsGenericTypeDefinition ) { + return default(ScriptInfo); + } + + if ( info.originalType.TryMakeGeneric(targetType, out Type genericType) ) { + var genericCategory = info.originalCategory + subCategory; + var genericName = info.originalName.Replace("(T)", string.Format("({0})", targetType.FriendlyName())); + var newInfo = new ScriptInfo(genericType, genericName, genericCategory, info.priority + priorityShift); + newInfo.originalType = info.originalType; + newInfo.originalName = info.originalName; + newInfo.originalCategory = info.originalCategory; + return newInfo; + } + return default(ScriptInfo); + } + + ///Not really. Only for purposes of menus usage. + static string NamespaceToPath(this Type type) { + if ( type == null ) { return string.Empty; } + return string.IsNullOrEmpty(type.Namespace) ? "No Namespace" : type.Namespace.Split('.').First(); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs.meta new file mode 100644 index 0000000..2b9c4c3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.ScriptInfos.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94b281ae1067f0c4ba9b8d27c2fb8178 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs new file mode 100644 index 0000000..42be41c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs @@ -0,0 +1,7 @@ +#if UNITY_EDITOR +namespace ParadoxNotion.Design +{ + ///Have some commonly stuff used across most inspectors and helper functions. Keep outside of Editor folder since many runtime classes use this in #if UNITY_EDITOR. This is a partial class. Different implementation provide different tools, so that everything is referenced from within one class. + public static partial class EditorUtils { } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs.meta new file mode 100644 index 0000000..77983ec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorUtils/EditorUtils.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 9eb95ac4d073bc449b98b80fb983d1d1 +timeCreated: 1543951637 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs new file mode 100644 index 0000000..66eb690 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs @@ -0,0 +1,131 @@ +#if UNITY_EDITOR + +using System; +using System.Reflection; + +namespace ParadoxNotion.Design +{ + + ///Factory for EditorObjectWrappers + public static class EditorWrapperFactory + { + + private static WeakReferenceTable cachedEditors = new WeakReferenceTable(); + + ///Returns a cached EditorObjectWrapper of type T for target object + public static T GetEditor(object target) where T : EditorObjectWrapper { + EditorObjectWrapper wrapper; + if ( cachedEditors.TryGetValueWithRefCheck(target, out wrapper) ) { + return (T)wrapper; + } + wrapper = (T)( typeof(T).CreateObject() ); + wrapper.Enable(target); + cachedEditors.Add(target, wrapper); + return (T)wrapper; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Wrapper Editor for objects + abstract public class EditorObjectWrapper : IDisposable + { + + private WeakReference _targetRef; + //The target + public object target { + get + { + _targetRef.TryGetTarget(out object reference); + return reference; + } + } + + //... + void IDisposable.Dispose() { OnDisable(); } + + ///Init for target + public void Enable(object target) { + this._targetRef = new WeakReference(target); + OnEnable(); + } + + ///Create Property and Method wrappers here or other stuff. + virtual protected void OnEnable() { } + ///Cleanup + virtual protected void OnDisable() { } + + ///Get a wrapped editor serialized field on target + public EditorPropertyWrapper CreatePropertyWrapper(string name) { + var type = target.GetType(); + var field = type.RTGetField(name, /*include private base*/ true); + if ( field != null ) { + var wrapper = (EditorPropertyWrapper)typeof(EditorPropertyWrapper<>).MakeGenericType(typeof(T)).CreateObject(); + wrapper.Init(this, field); + return wrapper; + } + return null; + } + + ///Get a wrapped editor method on target + public EditorMethodWrapper CreateMethodWrapper(string name) { + var type = target.GetType(); + var method = type.RTGetMethod(name); + if ( method != null ) { + var wrapper = new EditorMethodWrapper(); + wrapper.Init(this, method); + return wrapper; + } + return null; + } + } + + ///Wrapper Editor for objects + abstract public class EditorObjectWrapper : EditorObjectWrapper + { + new public T target { get { return (T)base.target; } } + } + + ///---------------------------------------------------------------------------------------------- + + ///An editor wrapped field + sealed public class EditorPropertyWrapper + { + private EditorObjectWrapper editor { get; set; } + private FieldInfo field { get; set; } + public T value { + get + { + var o = field.GetValue(editor.target); + return o != null ? (T)o : default(T); + } + set + { + field.SetValue(editor.target, value); + } + } + + public void Init(EditorObjectWrapper editor, FieldInfo field) { + this.editor = editor; + this.field = field; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///An editor wrapped method + sealed public class EditorMethodWrapper + { + private EditorObjectWrapper editor { get; set; } + private MethodInfo method { get; set; } + public void Invoke(params object[] args) { + method.Invoke(editor.target, args); + } + public void Init(EditorObjectWrapper editor, MethodInfo method) { + this.editor = editor; + this.method = method; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs.meta new file mode 100644 index 0000000..24dd5f1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/EditorWrapperFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8364c09f7a38544ab08ff1a13a47739 +timeCreated: 1510983225 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs new file mode 100644 index 0000000..6fc370a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs @@ -0,0 +1,104 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; + +namespace ParadoxNotion.Design +{ + + ///A generic popup editor + public class GenericInspectorWindow : EditorWindow + { + + private static GenericInspectorWindow current; + + private string friendlyTitle; + private System.Type targetType; + private Object unityObjectContext; + private System.Func read; + private System.Action write; + private Vector2 scrollPos; + private bool willRepaint; + + // ... + void OnEnable() { + titleContent = new GUIContent("Object Editor"); + current = this; + +#if UNITY_2017_2_OR_NEWER + EditorApplication.playModeStateChanged -= PlayModeChange; + EditorApplication.playModeStateChanged += PlayModeChange; +#else + EditorApplication.playmodeStateChanged -= PlayModeChange; + EditorApplication.playmodeStateChanged += PlayModeChange; +#endif + } + + //... + void OnDisable() { +#if UNITY_2017_2_OR_NEWER + EditorApplication.playModeStateChanged -= PlayModeChange; +#else + EditorApplication.playmodeStateChanged -= PlayModeChange; +#endif + } + +#if UNITY_2017_2_OR_NEWER + void PlayModeChange(PlayModeStateChange state) { Close(); } +#else + void PlayModeChange(){ Close(); } +#endif + + ///Open utility window to inspect target object of type in context using read/write delegates. + public static void Show(string title, System.Type targetType, Object unityObjectContext, System.Func read, System.Action write) { + var window = current != null ? current : CreateInstance(); + window.friendlyTitle = title; + window.targetType = targetType; + window.unityObjectContext = unityObjectContext; + window.write = write; + window.read = read; + window.ShowUtility(); + } + + //... + void Update() { + if ( willRepaint ) { + willRepaint = false; + Repaint(); + } + } + + //... + void OnGUI() { + + if ( targetType == null ) { + return; + } + + var e = Event.current; + if ( e.type == EventType.ValidateCommand && e.commandName == "UndoRedoPerformed" ) { + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + e.Use(); + return; + } + + GUILayout.Space(10); + GUILayout.Label(string.Format("{0}", targetType.FriendlyName()), Styles.centerLabel); + EditorUtils.Separator(); + GUILayout.Space(10); + scrollPos = GUILayout.BeginScrollView(scrollPos); + var serializationInfo = new InspectedFieldInfo(unityObjectContext, null, null, null); + var oldValue = read(); + var newValue = EditorUtils.ReflectedFieldInspector(friendlyTitle, oldValue, targetType, serializationInfo); + if ( !Equals(oldValue, newValue) || GUI.changed ) { + write(newValue); + } + GUILayout.EndScrollView(); + + willRepaint = true; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs.meta new file mode 100644 index 0000000..4068496 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericInspectorWindow.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25316af9468ffe04f8946375b92e7e79 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs new file mode 100644 index 0000000..42bd8c3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs @@ -0,0 +1,645 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; +using System.Reflection; +using System.Linq; +using ParadoxNotion.Serialization; +using ParadoxNotion.Services; +using System.Threading.Tasks; + +namespace ParadoxNotion.Design +{ + + ///Proviving a UnityEditor.GenericMenu, shows a complete popup browser. + public class GenericMenuBrowser : PopupWindowContent + { + + //class node used in browser + class Node + { + public string name; + public string fullPath; + public bool unfolded; + public EditorUtils.MenuItemInfo item; + public Node parent; + public Dictionary children; + + public Node() { + children = new Dictionary(System.StringComparer.Ordinal); + unfolded = true; + } + + //Leafs have menu items + public bool isLeaf { + get { return item.isValid; } + } + + public string category { + get { return parent != null ? parent.fullPath : string.Empty; } + } + + //Is node favorite? + public bool isFavorite { + get + { + if ( current.favorites.Contains(fullPath) ) { + return true; + } + + var p = parent; + while ( p != null ) { + if ( p.isFavorite ) { + return true; + } + p = p.parent; + } + return false; + } + } + + //Does node has any favorite children? + public bool HasAnyFavoriteChild() { + if ( !string.IsNullOrEmpty(fullPath) ) { + return current.favorites.Any(p => p.StartsWith(fullPath + "/")); + } + return false; + } + + //Toggle favorite state + public void ToggleFavorite() { + SetFavorite(!isFavorite); + } + + //Set favorite state + void SetFavorite(bool fav) { + if ( fav == true && !isFavorite ) { + current.AddFavorite(fullPath); + } + + if ( fav == false && isFavorite ) { + current.RemoveFavorite(fullPath); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Browser preferences and saved favorites per key + class SerializationData + { + public Dictionary> allFavorites; + public bool filterFavorites; + public SerializationData() { + allFavorites = new Dictionary>(System.StringComparer.Ordinal); + filterFavorites = false; + } + } + + ///---------------------------------------------------------------------------------------------- + + public static GenericMenuBrowser current { get; private set; } + private const string PREFERENCES_KEY = "ParadoxNotion.ContextBrowserPreferences_2"; + private const float HELP_RECT_HEIGHT = 58; + private readonly Color hoverColor = new Color(0.5f, 0.5f, 1, 0.3f); + + private static System.Threading.Thread menuGenerationThread; + private static System.Threading.Thread treeGenerationThread; + private static System.Threading.Thread searchGenerationThread; + + private SerializationData data; + private System.Type currentKeyType; + private List favorites; + + private bool _filterFavorites; + private bool filterFavorites { + get { return _filterFavorites && currentKeyType != null; } + set { _filterFavorites = value; } + } + + private GenericMenu boundMenu; + private EditorUtils.MenuItemInfo[] items; + private Node rootNode; + private List leafNodes; + private Node currentNode; + + private bool willRepaint; + private float loadProgress; + + private string headerTitle; + private Vector2 scrollPos; + private string lastSearch; + private string search; + private int lastHoveringIndex; + private int hoveringIndex; + private float helpRectRequiredHeight; + private System.Type wasFocusedWindowType; + + + ///---------------------------------------------------------------------------------------------- + + private GUIStyle _helpStyle; + private GUIStyle helpStyle { + get + { + if ( _helpStyle == null ) { + _helpStyle = new GUIStyle(Styles.topLeftLabel); + _helpStyle.wordWrap = true; + } + return _helpStyle; + } + } + + ///---------------------------------------------------------------------------------------------- + + //... + public override Vector2 GetWindowSize() { return new Vector2(480, Mathf.Max(500 + helpRectRequiredHeight, 500)); } + + ///Shows the popup menu at position and with title. getMenu is called async + public static void ShowAsync(Vector2 pos, string title, System.Type keyType, System.Func getMenu) { + current = new GenericMenuBrowser(null, title, keyType); + menuGenerationThread = Threader.StartFunction(menuGenerationThread, getMenu, (m) => + { + if ( current != null ) { current.SetMenu(m); } + menuGenerationThread = null; + }); + PopupWindow.Show(new Rect(pos.x, pos.y, 0, 0), current); + } + + ///Shows the popup menu at position and with title + public static GenericMenuBrowser Show(GenericMenu newMenu, Vector2 pos, string title, System.Type keyType) { + current = new GenericMenuBrowser(newMenu, title, keyType); + PopupWindow.Show(new Rect(pos.x, pos.y, 0, 0), current); + return current; + } + + ///constructor + GenericMenuBrowser(GenericMenu newMenu, string title, System.Type keyType) { + current = this; + headerTitle = title; + currentKeyType = keyType; + rootNode = new Node(); + currentNode = rootNode; + lastHoveringIndex = -1; + hoveringIndex = -1; + SetMenu(newMenu); + } + + ///Set another menu after it's open + void SetMenu(GenericMenu newMenu) { + if ( newMenu == null ) { + return; + } + + willRepaint = true; + boundMenu = newMenu; + + treeGenerationThread = Threader.StartAction(treeGenerationThread, current.GenerateTree, () => + { + treeGenerationThread = null; + willRepaint = true; + }); + } + + //editor opened + public override void OnOpen() { + EditorApplication.update -= OnEditorUpdate; + EditorApplication.update += OnEditorUpdate; + wasFocusedWindowType = EditorWindow.focusedWindow?.GetType(); + LoadPrefs(); + } + + //editor closed + public override void OnClose() { + SavePrefs(); + EditorApplication.update -= OnEditorUpdate; + // if ( menuGenerationThread != null && menuGenerationThread.IsAlive ) { menuGenerationThread.Abort(); menuGenerationThread = null; } + if ( treeGenerationThread != null && treeGenerationThread.IsAlive ) { treeGenerationThread.Abort(); treeGenerationThread = null; } + if ( searchGenerationThread != null && searchGenerationThread.IsAlive ) { searchGenerationThread.Abort(); searchGenerationThread = null; } + current = null; + if ( wasFocusedWindowType != null ) { EditorWindow.FocusWindowIfItsOpen(wasFocusedWindowType); } + } + + //check flag and repaint? + void OnEditorUpdate() { + if ( willRepaint ) { + willRepaint = false; + base.editorWindow.Repaint(); + } + } + + //... + void LoadPrefs() { + if ( data == null ) { + var json = EditorPrefs.GetString(PREFERENCES_KEY); + if ( !string.IsNullOrEmpty(json) ) { data = JSONSerializer.Deserialize(json); } + if ( data == null ) { data = new SerializationData(); } + + filterFavorites = data.filterFavorites; + if ( currentKeyType != null ) { + data.allFavorites.TryGetValue(currentKeyType.Name, out favorites); + } + + if ( favorites == null ) { + favorites = new List(); + } + } + } + + //... + void SavePrefs() { + data.filterFavorites = filterFavorites; + if ( currentKeyType != null ) { + data.allFavorites[currentKeyType.Name] = favorites; + } + EditorPrefs.SetString(PREFERENCES_KEY, JSONSerializer.Serialize(typeof(SerializationData), data)); + } + + //... + void AddFavorite(string path) { + if ( !favorites.Contains(path) ) { + favorites.Add(path); + } + } + + //... + void RemoveFavorite(string path) { + if ( favorites.Contains(path) ) { + favorites.Remove(path); + } + } + + //Generate the tree node structure out of the items + void GenerateTree() { + loadProgress = 0; + var tempItems = EditorUtils.GetMenuItems(boundMenu); + var tempLeafNodes = new List(); + var tempRoot = new Node(); + for ( var i = 0; i < tempItems.Length; i++ ) { + loadProgress = i / (float)tempItems.Length; + var item = tempItems[i]; + var itemPath = item.content.text; + var parts = itemPath.Split('/'); + Node current = tempRoot; + var path = string.Empty; + for ( var j = 0; j < parts.Length; j++ ) { + var part = parts[j]; + path += '/' + part; + Node child = null; + if ( !current.children.TryGetValue(part, out child) ) { + child = new Node { name = part, parent = current }; + child.fullPath = path; + current.children[part] = child; + if ( part == parts.Last() ) { + child.item = item; + tempLeafNodes.Add(child); + } + } + current = child; + } + } + items = tempItems; + leafNodes = tempLeafNodes; + rootNode = tempRoot; + currentNode = rootNode; + } + + //generate search results and return in a Node (that should be set as root node) + Node GenerateSearchResults() { + var searchRootNode = new Node() { name = "Search Root" }; + searchRootNode.children = leafNodes + .Where(x => ( filterFavorites ? x.isFavorite : true ) && StringUtils.SearchMatch(search, x.name, x.category)) + .OrderBy(x => StringUtils.ScoreSearchMatch(search, x.name, x.category) * ( x.isFavorite ? 0.5f : 1 )) + .ToDictionary(x => x.fullPath, y => y); + return searchRootNode; + } + + + //Show stuff + public override void OnGUI(Rect rect) { + + var e = Event.current; + EditorGUIUtility.SetIconSize(Vector2.zero); + hoveringIndex = Mathf.Clamp(hoveringIndex, -1, currentNode.children.Count - 1); + if ( EditorGUIUtility.isProSkin ) { + Styles.Draw(rect, Styles.shadowedBackground); + } + + var headerHeight = currentNode.parent != null ? 95 : 60; + var headerRect = new Rect(0, 0, rect.width, headerHeight); + DoHeader(headerRect, e); + + if ( ( treeGenerationThread != null && treeGenerationThread.ThreadState != System.Threading.ThreadState.Stopped ) || items == null || items.Length == 0 ) { + var progressRect = new Rect(0, 0, 200, 20); + progressRect.center = rect.center; + EditorGUI.ProgressBar(progressRect, loadProgress, "Loading..."); + willRepaint = true; + } else { + var treeRect = Rect.MinMaxRect(0, headerHeight, rect.width, rect.height - HELP_RECT_HEIGHT); + DoTree(treeRect, e); + } + + var helpRect = Rect.MinMaxRect(2, rect.height - HELP_RECT_HEIGHT + 2, rect.width - 2, rect.height - 2); + DoFooter(helpRect, e); + + //handle the events + HandeEvents(e); + + EditorGUIUtility.SetIconSize(Vector2.zero); + } + + //... + void DoHeader(Rect headerRect, Event e) { + //HEADER + GUILayout.Space(5); + GUILayout.Label(string.Format("{1}", EditorGUIUtility.isProSkin ? "dddddd" : "222222", headerTitle), Styles.topCenterLabel); + + //SEARCH + if ( e.keyCode == KeyCode.DownArrow ) { GUIUtility.keyboardControl = 0; } + if ( e.keyCode == KeyCode.UpArrow ) { GUIUtility.keyboardControl = 0; } + if ( e.keyCode == KeyCode.Return ) { GUIUtility.keyboardControl = 0; } + GUILayout.BeginHorizontal(); + GUILayout.Space(4); + GUI.SetNextControlName("SearchToolbar"); + search = EditorUtils.SearchField(search); + if ( currentKeyType != null ) { + filterFavorites = EditorGUILayout.ToggleLeft("FavOnly", filterFavorites, GUILayout.Width(70)); + } + GUILayout.EndHorizontal(); + EditorUtils.BoldSeparator(); + + //BACK + if ( currentNode.parent != null && string.IsNullOrEmpty(search) ) { + GUILayout.BeginHorizontal("box"); + if ( GUILayout.Button(string.Format("◄ {0}/{1}", currentNode.parent.name, currentNode.name), Styles.leftLabel) ) { + currentNode = currentNode.parent; + } + GUILayout.EndHorizontal(); + var lastRect = GUILayoutUtility.GetLastRect(); + if ( lastRect.Contains(e.mousePosition) ) { + GUI.color = hoverColor; + GUI.DrawTexture(lastRect, EditorGUIUtility.whiteTexture); + GUI.color = Color.white; + willRepaint = true; + hoveringIndex = -1; + } + } + } + + //THE TREE + void DoTree(Rect treeRect, Event e) { + + if ( treeGenerationThread != null ) { + return; + } + + if ( search != lastSearch ) { + lastSearch = search; + hoveringIndex = -1; + if ( !string.IsNullOrEmpty(search) ) { + + // //provide null reference thread (thus no aborting) so that results update all the time + searchGenerationThread = Threader.StartFunction(null, GenerateSearchResults, (resultNode) => + { + currentNode = resultNode; + searchGenerationThread = null; + if ( current != null ) { willRepaint = true; } + }); + + } else { + currentNode = rootNode; + } + } + + + GUILayout.BeginArea(treeRect); + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, false, false); + GUILayout.BeginVertical(); + + ///---------------------------------------------------------------------------------------------- + + var i = 0; + var itemAdded = false; + string lastSearchCategory = null; + var isSearch = !string.IsNullOrEmpty(search); + foreach ( var childPair in currentNode.children ) { + if ( isSearch && i >= 200 ) { + EditorGUILayout.HelpBox("There are more than 200 results. Please try refine your search input.", MessageType.Info); + break; + } + + var node = childPair.Value; + var memberInfo = node.isLeaf ? node.item.userData as MemberInfo : null; + var isDisabled = node.isLeaf && node.item.func == null && node.item.func2 == null; + var icon = node.isLeaf ? node.item.content.image : Icons.folderIcon; + if ( icon == null && memberInfo != null ) { + icon = TypePrefs.GetTypeIcon(memberInfo); + } + + //when within search, show category on top + if ( isSearch ) { + var searchCategory = lastSearchCategory; + if ( memberInfo == null || memberInfo is System.Type ) { + searchCategory = node.parent.fullPath != null ? node.parent.fullPath.Split(new char[] { '/' }, System.StringSplitOptions.RemoveEmptyEntries).FirstOrDefault() : null; + } else { + searchCategory = memberInfo.ReflectedType.FriendlyName(); + } + + if ( searchCategory != lastSearchCategory ) { + lastSearchCategory = searchCategory; + GUI.color = EditorGUIUtility.isProSkin ? Color.black : Color.white; + GUILayout.BeginHorizontal("box"); + GUI.color = Color.white; + GUILayout.Label(searchCategory, Styles.leftLabel, GUILayout.Height(16)); + GUILayout.EndHorizontal(); + } + } + // + + + if ( filterFavorites && !node.isFavorite && !node.HasAnyFavoriteChild() ) { + continue; + } + + if ( node.isLeaf && node.item.separator ) { + if ( itemAdded ) { + EditorUtils.Separator(); + } + continue; + } + + itemAdded = true; + + GUI.color = Color.clear; + GUILayout.BeginHorizontal("box"); + GUI.color = Color.white; + + //Prefix icon + GUILayout.Label(icon, GUILayout.Width(22), GUILayout.Height(16)); + GUI.enabled = !isDisabled; + + //Favorite + if ( currentKeyType != null ) { + GUI.color = node.isFavorite ? Color.white : ( node.HasAnyFavoriteChild() ? new Color(1, 1, 1, 0.2f) : new Color(0f, 0f, 0f, 0.4f) ); + if ( GUILayout.Button(Icons.favoriteIcon, GUIStyle.none, GUILayout.Width(16), GUILayout.Height(16)) ) { + node.ToggleFavorite(); + } + GUI.color = Color.white; + } + + //Content + var label = node.name; + var hexColor = EditorGUIUtility.isProSkin ? "#B8B8B8" : "#262626"; + hexColor = isDisabled ? "#666666" : hexColor; + var text = string.Format("{1}", hexColor, ( !node.isLeaf ? string.Format("{0}", label) : label )); + GUILayout.Label(text, Styles.leftLabel, GUILayout.Width(0), GUILayout.ExpandWidth(true)); + GUILayout.Label(node.isLeaf ? "●" : "►", Styles.leftLabel, GUILayout.Width(20)); + GUILayout.EndHorizontal(); + + var elementRect = GUILayoutUtility.GetLastRect(); + if ( e.type == EventType.MouseDown && e.button == 0 && elementRect.Contains(e.mousePosition) ) { + e.Use(); + if ( node.isLeaf ) { + + ExecuteItemFunc(node.item); + break; + + } else { + + currentNode = node; + hoveringIndex = 0; + break; + } + } + + if ( e.type == EventType.MouseMove && elementRect.Contains(e.mousePosition) ) { + hoveringIndex = i; + } + + if ( hoveringIndex == i ) { + GUI.color = hoverColor; + GUI.DrawTexture(elementRect, EditorGUIUtility.whiteTexture); + GUI.color = Color.white; + } + + i++; + GUI.enabled = true; + } + + if ( hoveringIndex != lastHoveringIndex ) { + willRepaint = true; + lastHoveringIndex = hoveringIndex; + } + + if ( !itemAdded ) { + GUILayout.Label("No results to display with current search and filter combination"); + } + + GUILayout.EndVertical(); + EditorGUILayout.EndScrollView(); + GUILayout.EndArea(); + } + + //HELP AREA + void DoFooter(Rect helpRect, Event e) { + helpRectRequiredHeight = 0; + var hoveringNode = hoveringIndex >= 0 && currentNode.children.Count > 0 ? currentNode.children.Values.ToList()[hoveringIndex] : null; + GUI.color = new Color(0, 0, 0, 0.3f); + Styles.Draw(helpRect, GUI.skin.textField); + GUI.color = Color.white; + GUILayout.BeginArea(helpRect); + GUILayout.BeginVertical(); + var doc = string.Empty; + if ( hoveringNode != null && hoveringNode.isLeaf ) { + doc = hoveringNode.item.content.tooltip; + var memberInfo = hoveringNode.item.userData as MemberInfo; + if ( memberInfo != null && string.IsNullOrEmpty(doc) ) { + if ( memberInfo is System.Type ) { + doc = TypePrefs.GetTypeDoc(memberInfo); + } else { + doc = XMLDocs.GetMemberSummary(memberInfo); + } + } + } + + GUILayout.Label(string.Format("{0}", doc), helpStyle); + GUILayout.EndVertical(); + GUILayout.EndArea(); + } + + ///---------------------------------------------------------------------------------------------- + + //Executes the item's registered delegate + void ExecuteItemFunc(EditorUtils.MenuItemInfo item) { + if ( item.func != null ) { + item.func(); + } else { + item.func2(item.userData); + } + base.editorWindow.Close(); + } + + //Handle events + void HandeEvents(Event e) { + + //Go back with right click as well... + if ( e.type == EventType.MouseDown && e.button == 1 ) { + if ( currentNode.parent != null ) { + currentNode = currentNode.parent; + } + e.Use(); + } + + if ( e.type == EventType.KeyDown ) { + + if ( e.keyCode == KeyCode.RightArrow || e.keyCode == KeyCode.Return ) { + if ( hoveringIndex >= 0 ) { + var next = currentNode.children.Values.ToList()[hoveringIndex]; + if ( e.keyCode == KeyCode.Return && next.isLeaf ) { + ExecuteItemFunc(next.item); + } else if ( !next.isLeaf ) { + currentNode = next; + hoveringIndex = 0; + } + e.Use(); + return; + } + } + + if ( e.keyCode == KeyCode.LeftArrow ) { + var previous = currentNode.parent; + if ( previous != null ) { + hoveringIndex = currentNode.parent.children.Values.ToList().IndexOf(currentNode); + currentNode = previous; + } + e.Use(); + return; + } + + if ( e.keyCode == KeyCode.DownArrow ) { + hoveringIndex++; + e.Use(); + return; + } + + if ( e.keyCode == KeyCode.UpArrow ) { + hoveringIndex = Mathf.Max(hoveringIndex - 1, 0); + e.Use(); + return; + } + + if ( e.keyCode == KeyCode.Escape ) { + base.editorWindow.Close(); + e.Use(); + return; + } + + EditorGUI.FocusTextInControl("SearchToolbar"); + + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs.meta new file mode 100644 index 0000000..63caa7c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/GenericMenuBrowser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d963bfbd43f9ec4ca490225535abeef +timeCreated: 1426970318 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs new file mode 100644 index 0000000..692334c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs @@ -0,0 +1,33 @@ +#if UNITY_EDITOR + +using System.Reflection; + +namespace ParadoxNotion.Design +{ + + ///Contains info about inspected field rin regards to reflected inspector and object/attribute drawers + public struct InspectedFieldInfo + { + ///The field inspected + public FieldInfo field; + ///the unityengine object serialization context + public UnityEngine.Object unityObjectContext; + ///the parent instance the field lives within + public object parentInstanceContext; + ///In case instance lives in wrapped context (eg lists) otherwise the same as parentInstanceContext + public object wrapperInstanceContext; + ///attributes found on field + public object[] attributes; + + //... + public InspectedFieldInfo(UnityEngine.Object unityObjectContext, FieldInfo field, object parentInstanceContext, object[] attributes) { + this.unityObjectContext = unityObjectContext; + this.field = field; + this.parentInstanceContext = parentInstanceContext; + this.wrapperInstanceContext = parentInstanceContext; + this.attributes = attributes; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs.meta new file mode 100644 index 0000000..a0ccb6a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/InspectedFieldInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0758ec893fb3a1d44a1bfa3730380e94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs new file mode 100644 index 0000000..15b1ec6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs @@ -0,0 +1,243 @@ +#if UNITY_EDITOR + +using UnityEngine; +using System; +using System.Reflection; +using System.Collections.Generic; +using System.Linq; + +namespace ParadoxNotion.Design +{ + + ///Provides object and attribute property drawers + public static class PropertyDrawerFactory + { + + //Type to drawer instance map + private static Dictionary objectDrawers = new Dictionary(); + private static Dictionary attributeDrawers = new Dictionary(); + + public static void FlushMem() { + objectDrawers = new Dictionary(); + attributeDrawers = new Dictionary(); + } + + ///Return an object drawer instance of target inspected type + public static IObjectDrawer GetObjectDrawer(Type objectType) { + IObjectDrawer result = null; + if ( objectDrawers.TryGetValue(objectType, out result) ) { + return result; + } + + // look for specific drawer first + Type fallbackDrawerType = null; + foreach ( var drawerType in ReflectionTools.GetImplementationsOf(typeof(IObjectDrawer)) ) { + if ( drawerType != typeof(DefaultObjectDrawer) ) { + var args = drawerType.BaseType.RTGetGenericArguments(); + if ( args.Length == 1 ) { + if ( args[0].IsEquivalentTo(objectType) ) { + return objectDrawers[objectType] = Activator.CreateInstance(drawerType) as IObjectDrawer; + } + if ( args[0].IsAssignableFrom(objectType) ) { fallbackDrawerType = drawerType; } + } + } + } + + if ( fallbackDrawerType != null ) { + return objectDrawers[objectType] = Activator.CreateInstance(fallbackDrawerType) as IObjectDrawer; + } + + + // foreach ( var drawerType in ReflectionTools.GetImplementationsOf(typeof(IObjectDrawer)) ) { + // if ( drawerType != typeof(DefaultObjectDrawer) ) { + // var args = drawerType.BaseType.RTGetGenericArguments(); + // if ( args.Length == 1 && args[0].IsAssignableFrom(objectType) ) { + // return objectDrawers[objectType] = Activator.CreateInstance(drawerType) as IObjectDrawer; + // } + // } + // } + + return objectDrawers[objectType] = new DefaultObjectDrawer(objectType); + } + + ///Return an attribute drawer instance of target attribute instance + public static IAttributeDrawer GetAttributeDrawer(DrawerAttribute att) { return GetAttributeDrawer(att.GetType()); } + ///Return an attribute drawer instance of target attribute type + public static IAttributeDrawer GetAttributeDrawer(Type attributeType) { + IAttributeDrawer result = null; + if ( attributeDrawers.TryGetValue(attributeType, out result) ) { + return result; + } + + foreach ( var drawerType in ReflectionTools.GetImplementationsOf(typeof(IAttributeDrawer)) ) { + if ( drawerType != typeof(DefaultAttributeDrawer) ) { + var args = drawerType.BaseType.RTGetGenericArguments(); + if ( args.Length == 1 && args[0].IsAssignableFrom(attributeType) ) { + return attributeDrawers[attributeType] = Activator.CreateInstance(drawerType) as IAttributeDrawer; + } + } + } + + return attributeDrawers[attributeType] = new DefaultAttributeDrawer(attributeType); + } + } + + ///---------------------------------------------------------------------------------------------- + + public interface IObjectDrawer + { + object DrawGUI(GUIContent content, object instance, InspectedFieldInfo info); + object MoveNextDrawer(); + } + + public interface IAttributeDrawer + { + object DrawGUI(IObjectDrawer objectDrawer, GUIContent content, object instance, DrawerAttribute attribute, InspectedFieldInfo info); + } + + ///---------------------------------------------------------------------------------------------- + + ///Derive this to create custom drawers for T assignable object types. + abstract public class ObjectDrawer : IObjectDrawer + { + ///info + protected InspectedFieldInfo info { get; private set; } + ///The GUIContent + protected GUIContent content { get; private set; } + ///The instance of the object being drawn + protected T instance { get; private set; } + + ///The set of Drawer Attributes found on field + protected DrawerAttribute[] attributes { get; private set; } + ///Current attribute index drawn + private int attributeIndex { get; set; } + + ///The reflected FieldInfo representation + protected FieldInfo fieldInfo { get { return info.field; } } + ///The parent object the instance is drawn within + protected object context { get { return info.parentInstanceContext; } } + ///The Unity object the instance serialized within + protected UnityEngine.Object contextUnityObject { get { return info.unityObjectContext; } } + + + ///Begin GUI + object IObjectDrawer.DrawGUI(GUIContent content, object instance, InspectedFieldInfo info) { + this.content = content; + this.instance = (T)instance; + this.info = info; + + this.attributes = info.attributes != null ? info.attributes.OfType().OrderBy(a => a.priority).ToArray() : null; + + this.attributeIndex = -1; + var result = ( this as IObjectDrawer ).MoveNextDrawer(); + + // //flush references + this.info = default(InspectedFieldInfo); + this.content = null; + this.instance = default(T); + this.attributes = null; + + return result; + } + + ///Show the next attribute drawer in order, or the object drawer itself of no attribute drawer is left to show. + object IObjectDrawer.MoveNextDrawer() { + attributeIndex++; + if ( attributes != null && attributeIndex < attributes.Length ) { + var currentDrawerAttribute = attributes[attributeIndex]; + var drawer = PropertyDrawerFactory.GetAttributeDrawer(currentDrawerAttribute); + return drawer.DrawGUI(this, content, instance, currentDrawerAttribute, info); + } + return OnGUI(content, instance); + } + + ///Override to implement GUI. Return the modified instance at the end. + abstract public T OnGUI(GUIContent content, T instance); + } + + ///The default object drawer implementation able to inspect most types + public class DefaultObjectDrawer : ObjectDrawer + { + + private Type objectType; + + public DefaultObjectDrawer(Type objectType) { + this.objectType = objectType; + } + + public override object OnGUI(GUIContent content, object instance) { + return EditorUtils.DrawEditorFieldDirect(content, instance, objectType, info); + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Derive this to create custom drawers for T DrawerAttribute. + abstract public class AttributeDrawer : IAttributeDrawer where T : DrawerAttribute + { + + ///info + protected InspectedFieldInfo info { get; private set; } + + ///The GUIContent + protected GUIContent content { get; private set; } + ///The instance of the object being drawn + protected object instance { get; private set; } + ///The reflected FieldInfo representation + + ///The attribute instance + protected T attribute { get; private set; } + ///The ObjectDrawer currently in use + protected IObjectDrawer objectDrawer { get; private set; } + + protected FieldInfo fieldInfo { get { return info.field; } } + ///The parent object the instance is drawn within + protected object context { get { return info.parentInstanceContext; } } + ///The Unity object the instance serialized within + protected UnityEngine.Object contextUnityObject { get { return info.unityObjectContext; } } + + ///Begin GUI + object IAttributeDrawer.DrawGUI(IObjectDrawer objectDrawer, GUIContent content, object instance, DrawerAttribute attribute, InspectedFieldInfo info) { + this.objectDrawer = objectDrawer; + this.content = content; + this.instance = instance; + this.attribute = (T)attribute; + + this.info = info; + var result = OnGUI(content, instance); + + //flush references + this.info = default(InspectedFieldInfo); + this.content = null; + this.instance = null; + this.attribute = null; + this.objectDrawer = null; + + return result; + } + + ///Override to implement GUI. Return the modified instance at the end. + abstract public object OnGUI(GUIContent content, object instance); + ///Show the next attribute drawer in order, or the object drawer itself of no attribute drawer is left to show. + protected object MoveNextDrawer() { return objectDrawer.MoveNextDrawer(); } + } + + ///The default attribute drawer implementation for when an actual implementation is not found + public class DefaultAttributeDrawer : AttributeDrawer + { + + private Type attributeType; + + public DefaultAttributeDrawer(Type attributeType) { + this.attributeType = attributeType; + } + + public override object OnGUI(GUIContent content, object instance) { + GUILayout.Label(string.Format("Implementation of '{0}' drawer attribute not found.", attributeType)); + return MoveNextDrawer(); + } + } + +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs.meta new file mode 100644 index 0000000..8ca7edd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/PropertyDrawerFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f034313c7b49f4b458d0f47465b8e1c5 +timeCreated: 1461581884 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs new file mode 100644 index 0000000..037092b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs @@ -0,0 +1,440 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using System; +using System.Collections; +using System.Reflection; +using NavMesh = UnityEngine.AI.NavMesh; +using NavMeshAgent = UnityEngine.AI.NavMeshAgent; +using ParadoxNotion.Serialization; + +namespace ParadoxNotion.Design +{ + + ///Collection of preferred user types and utilities for types, type colors and icons + public static class TypePrefs + { + + //Raised when the preferred types list change + public static event Action onPreferredTypesChanged; + + public const string SYNC_FILE_NAME = "PreferredTypes.typePrefs"; + public const string LIST_MENU_STRING = "Collections/List (T)/"; + public const string DICT_MENU_STRING = "Collections/Dictionary (T)/"; + private static readonly string TYPES_PREFS_KEY = string.Format("ParadoxNotion.{0}.PreferedTypes", PlayerSettings.productName); + + private static List _preferedTypesAll; + private static List _preferedTypesFiltered; + + private static readonly List defaultTypesList = new List + { + typeof(object), + typeof(System.Type), + + //Primitives + typeof(string), + typeof(float), + typeof(int), + typeof(bool), + + //Unity basics + typeof(Vector2), + typeof(Vector3), + typeof(Vector4), + typeof(Quaternion), + typeof(Color), + typeof(LayerMask), + typeof(AnimationCurve), + typeof(RaycastHit), + typeof(RaycastHit2D), + + //Unity functional classes + typeof(Debug), + typeof(Application), + typeof(Mathf), + typeof(Physics), + typeof(Physics2D), + typeof(Input), + typeof(NavMesh), + typeof(PlayerPrefs), + typeof(UnityEngine.Random), + typeof(Time), + typeof(UnityEngine.SceneManagement.SceneManager), + + //Unity Objects + typeof(UnityEngine.Object), + typeof(UnityEngine.MonoBehaviour), + typeof(UnityEngine.ScriptableObject), + typeof(GameObject), + typeof(Transform), + typeof(Animator), + typeof(Rigidbody), + typeof(Rigidbody2D), + typeof(Collider), + typeof(Collider2D), + typeof(NavMeshAgent), + typeof(CharacterController), + typeof(AudioSource), + typeof(Camera), + typeof(Light), + typeof(Renderer), + + //UGUI + typeof(UnityEngine.UI.Button), + typeof(UnityEngine.UI.Slider), + + //Unity Asset Objects + typeof(Texture2D), + typeof(Sprite), + typeof(Material), + typeof(AudioClip), + typeof(AnimationClip), + typeof(UnityEngine.Audio.AudioMixer), + typeof(TextAsset), + }; + + //These types will be filtered out when requesting types with 'filterOutFunctionalOnlyTypes' true. + //The problem with these is that they are not static thus instance can be made, but still, there is no reason to have an instance cause their members are static. + //Most of them are also probably singletons. + //Hopefully this made sense :) + public static readonly List functionalTypesBlacklist = new List + { + typeof(Debug), + typeof(Application), + typeof(Mathf), + typeof(Physics), + typeof(Physics2D), + typeof(Input), + typeof(NavMesh), + typeof(PlayerPrefs), + typeof(UnityEngine.Random), + typeof(Time), + typeof(UnityEngine.SceneManagement.SceneManager), + }; + + + //The default prefered types list + private static string defaultTypesListString { + get { return string.Join("|", defaultTypesList.OrderBy(t => t.Namespace).ThenBy(t => t.Name).Select(t => t.FullName).ToArray()); } + } + + ///---------------------------------------------------------------------------------------------- + + [InitializeOnLoadMethod] + static void LoadTypes() { + _preferedTypesAll = new List(); + + if ( TryLoadSyncFile(ref _preferedTypesAll) ) { + SetPreferedTypesList(_preferedTypesAll); + return; + } + + foreach ( var s in EditorPrefs.GetString(TYPES_PREFS_KEY, defaultTypesListString).Split('|') ) { + var resolvedType = ReflectionTools.GetType(s, /*fallback?*/ true); + if ( resolvedType != null ) { + _preferedTypesAll.Add(resolvedType); + } else { ParadoxNotion.Services.Logger.Log("Missing type in Preferred Types Editor. Type removed."); } + } + //re-write back, so that fallback type resolved are saved + SetPreferedTypesList(_preferedTypesAll); + } + + ///Get the prefered types set by the user. + public static List GetPreferedTypesList(bool filterOutFunctionalOnlyTypes = false) { return GetPreferedTypesList(typeof(object), filterOutFunctionalOnlyTypes); } + public static List GetPreferedTypesList(Type baseType, bool filterOutFunctionalOnlyTypes = false) { + + if ( _preferedTypesAll == null || _preferedTypesFiltered == null ) { + LoadTypes(); + } + + if ( baseType == typeof(object) ) { + return filterOutFunctionalOnlyTypes ? _preferedTypesFiltered : _preferedTypesAll; + } + + if ( filterOutFunctionalOnlyTypes ) { + return _preferedTypesFiltered.Where(t => t != null && baseType.IsAssignableFrom(t)).ToList(); + } + return _preferedTypesAll.Where(t => t != null && baseType.IsAssignableFrom(t)).ToList(); + } + + ///Set the prefered types list for the user + public static void SetPreferedTypesList(List types) { + var finalTypes = types + .Where(t => t != null && !t.IsGenericType) + .OrderBy(t => t.Namespace) + .ThenBy(t => t.Name) + .ToList(); + var joined = string.Join("|", finalTypes.Select(t => t.FullName).ToArray()); + EditorPrefs.SetString(TYPES_PREFS_KEY, joined); + _preferedTypesAll = finalTypes; + + var finalTypesFiltered = finalTypes + .Where(t => !functionalTypesBlacklist.Contains(t) /*&& !t.IsInterface && !t.IsAbstract*/ ) + .ToList(); + _preferedTypesFiltered = finalTypesFiltered; + + TrySaveSyncFile(finalTypes); + + if ( onPreferredTypesChanged != null ) { + onPreferredTypesChanged(); + } + } + + ///Append a type to the list + public static void AddType(Type type) { + var current = GetPreferedTypesList(typeof(object)); + if ( !current.Contains(type) ) { + current.Add(type); + } + SetPreferedTypesList(current); + } + + ///Reset the prefered types to the default ones + public static void ResetTypeConfiguration() { + SetPreferedTypesList(defaultTypesList); + } + + ///---------------------------------------------------------------------------------------------- + + ///Is there a typePrefs file in sync? returns it's path. + public static string SyncFilePath() { + var syncFile = EditorGUIUtility.Load(SYNC_FILE_NAME); + var absPath = EditorUtils.AssetToSystemPath(syncFile); + if ( !string.IsNullOrEmpty(absPath) ) { + return absPath; + } + return null; + } + + ///Will try load from file found in DefaultEditorResources + static bool TryLoadSyncFile(ref List result) { + var absPath = SyncFilePath(); + if ( !string.IsNullOrEmpty(absPath) ) { + var json = System.IO.File.ReadAllText(absPath); + var temp = JSONSerializer.Deserialize>(json); + if ( temp != null ) { + result = temp; + return true; + } + } + return false; + } + + ///Will try save to file found in DefaultEditorResources + static void TrySaveSyncFile(List types) { + var absPath = SyncFilePath(); + if ( !string.IsNullOrEmpty(absPath) ) { + var json = JSONSerializer.Serialize(typeof(List), types, null, true); + System.IO.File.WriteAllText(absPath, json); + } + } + + //---------------------------------------------------------------------------------------------- + + private static readonly Color DEFAULT_TYPE_COLOR = Colors.Grey(0.75f); + ///A Type to color lookup initialized with some types already + private static Dictionary typeColors = new Dictionary() + { + {typeof(Delegate), new Color(1,0.4f,0.4f)}, + {typeof(bool?), new Color(1,0.4f,0.4f)}, + {typeof(float?), new Color(0.6f,0.6f,1)}, + {typeof(int?), new Color(0.5f,1,0.5f)}, + {typeof(string), new Color(0.55f,0.55f,0.55f)}, + {typeof(Vector2?), new Color(1f,0.7f,0.2f)}, + {typeof(Vector3?), new Color(1f,0.7f,0.2f)}, + {typeof(Vector4?), new Color(1f,0.7f,0.2f)}, + {typeof(Quaternion?), new Color(1f,0.7f,0.2f)}, + {typeof(GameObject), new Color(0.537f, 0.415f, 0.541f)}, + {typeof(UnityEngine.Object), Color.grey} + }; + + ///Get color for type + public static Color GetTypeColor(MemberInfo info) { + if ( !EditorGUIUtility.isProSkin ) { return Color.white; } + if ( info == null ) { return Color.black; } + var type = info is Type ? info as Type : info.ReflectedType; + if ( type == null ) { return Color.black; } + + Color color; + if ( typeColors.TryGetValue(type, out color) ) { + return color; + } + + foreach ( var pair in typeColors ) { + + if ( pair.Key.IsAssignableFrom(type) ) { + return typeColors[type] = pair.Value; + } + + if ( typeof(IEnumerable).IsAssignableFrom(type) ) { + var elementType = type.GetEnumerableElementType(); + if ( elementType != null ) { + return typeColors[type] = GetTypeColor(elementType); + } + } + } + + return typeColors[type] = DEFAULT_TYPE_COLOR; + } + + ///Get the hex color preference for a type + public static string GetTypeHexColor(Type type) { + if ( !EditorGUIUtility.isProSkin ) { + return "#000000"; + } + return ColorUtils.ColorToHex(GetTypeColor(type)); + } + + + //---------------------------------------------------------------------------------------------- + + private const string DEFAULT_TYPE_ICON_NAME = "System.Object"; + private const string IMPLICIT_ICONS_PATH = "TypeIcons/Implicit/"; + private const string EXPLICIT_ICONS_PATH = "TypeIcons/Explicit/"; + + ///A Type.FullName to texture lookup. Use string instead of type to also handle attributes + private static Dictionary typeIcons = new Dictionary(StringComparer.OrdinalIgnoreCase); + + ///Get icon for type + public static Texture GetTypeIcon(MemberInfo info, bool fallbackToDefault = true) { + if ( info == null ) { return null; } + var type = info is Type ? info as Type : info.ReflectedType; + if ( type == null ) { return null; } + + Texture texture = null; + if ( typeIcons.TryGetValue(type.FullName, out texture) ) { + if ( texture != null ) { + if ( texture.name != DEFAULT_TYPE_ICON_NAME || fallbackToDefault ) { + return texture; + } + } + return null; + } + + if ( texture == null ) { + if ( type.IsEnumerableCollection() ) { + var elementType = type.GetEnumerableElementType(); + if ( elementType != null ) { + texture = GetTypeIcon(elementType); + } + } + } + + if ( typeof(UnityEngine.Object).IsAssignableFrom(type) ) { + texture = AssetPreview.GetMiniTypeThumbnail(type); + if ( texture == null && ( typeof(MonoBehaviour).IsAssignableFrom(type) || typeof(ScriptableObject).IsAssignableFrom(type) ) ) { + texture = EditorGUIUtility.ObjectContent(EditorUtils.MonoScriptFromType(type), null).image; + if ( texture == null ) { + texture = Icons.csIcon; + } + } + } + + if ( texture == null ) { + texture = Resources.Load(IMPLICIT_ICONS_PATH + type.FullName); + } + + ///Explicit icons not in dark theme + if ( EditorGUIUtility.isProSkin ) { + if ( texture == null ) { + var iconAtt = type.RTGetAttribute(true); + if ( iconAtt != null ) { + texture = GetTypeIcon(iconAtt, null); + } + } + } + + if ( texture == null ) { + var current = type.BaseType; + while ( current != null ) { + texture = Resources.Load(IMPLICIT_ICONS_PATH + current.FullName); + current = current.BaseType; + if ( texture != null ) { + break; + } + } + } + + if ( texture == null ) { + texture = Resources.Load(IMPLICIT_ICONS_PATH + DEFAULT_TYPE_ICON_NAME); + } + + typeIcons[type.FullName] = texture; + + if ( texture != null ) { //it should not be + if ( texture.name != DEFAULT_TYPE_ICON_NAME || fallbackToDefault ) { + return texture; + } + } + return null; + } + + ///Get icon from [ParadoxNotion.Design.IconAttribute] info + public static Texture GetTypeIcon(IconAttribute iconAttribute, object instance = null) { + if ( iconAttribute == null ) { return null; } + + if ( instance != null && !string.IsNullOrEmpty(iconAttribute.runtimeIconTypeCallback) ) { + var callbackMethod = instance.GetType().RTGetMethod(iconAttribute.runtimeIconTypeCallback); + return callbackMethod != null && callbackMethod.ReturnType == typeof(Type) ? GetTypeIcon((Type)callbackMethod.Invoke(instance, null), false) : null; + } + + if ( iconAttribute.fromType != null ) { + return GetTypeIcon(iconAttribute.fromType, true); + } + + Texture texture = null; + if ( typeIcons.TryGetValue(iconAttribute.iconName, out texture) ) { + return texture; + } + + if ( !string.IsNullOrEmpty(iconAttribute.iconName) ) { + texture = Resources.Load(EXPLICIT_ICONS_PATH + iconAttribute.iconName); + if ( texture == null ) { //for user made icons where user don't have to know the path + texture = Resources.Load(iconAttribute.iconName); + } + if ( texture == null ) { //for user made icons where user provide a non resources path + texture = AssetDatabase.LoadAssetAtPath(iconAttribute.iconName); + } + } + return typeIcons[iconAttribute.iconName] = texture; + } + + ///---------------------------------------------------------------------------------------------- + + ///A Type.FullName to documentation lookup + private static Dictionary typeDocs = new Dictionary(StringComparer.OrdinalIgnoreCase); + + ///Get documentation for type fetched either by the [Description] attribute, or it's xml doc. + public static string GetTypeDoc(MemberInfo info) { + if ( info == null ) { return null; } + var type = info is Type ? info as Type : info.ReflectedType; + if ( type == null ) { return null; } + + string doc = null; + if ( typeDocs.TryGetValue(type.FullName, out doc) ) { + return doc; + } + + var descAtt = type.RTGetAttribute(true); + if ( descAtt != null ) { + doc = descAtt.description; + } + + if ( doc == null ) { + doc = XMLDocs.GetMemberSummary(type); + } + + if ( doc == null ) { + doc = "No Documentation"; + } + + return typeDocs[type.FullName] = doc; + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs.meta new file mode 100644 index 0000000..91071e6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefs.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a3438334d9159844a828ec7b2425b40 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs new file mode 100644 index 0000000..d0c7785 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs @@ -0,0 +1,217 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using ParadoxNotion.Serialization; +using UnityEditor; +using UnityEngine; +using System.Linq; + + +namespace ParadoxNotion.Design +{ + + ///An editor for preferred types + public class TypePrefsEditorWindow : EditorWindow + { + + private List typeList; + private List alltypes; + private Vector2 scrollPos; + + ///Open window + public static void ShowWindow() { + var window = GetWindow(); + window.Show(); + } + + //... + void OnEnable() { + titleContent = new GUIContent("Preferred Types"); + typeList = TypePrefs.GetPreferedTypesList(); + alltypes = ReflectionTools.GetAllTypes(true).Where(t => !t.IsGenericType && !t.IsGenericTypeDefinition).ToList(); + } + + //... + void OnGUI() { + + GUI.skin.label.richText = true; + EditorGUILayout.HelpBox("Here you can specify frequently used types for your project and for easier access wherever you need to select a type, like for example when you create a new blackboard variable or using any refelection based actions. Furthermore, it is essential when working with AOT platforms like iOS or WebGL, that you generate an AOT Classes and link.xml files with the relevant button bellow. To add types in the list quicker, you can also Drag&Drop an object, or a Script file in this editor window.\n\nIf you save a preset in your 'Editor Default Resources/" + TypePrefs.SYNC_FILE_NAME + "' it will automatically sync with the list. Useful when working with others on source control.", MessageType.Info); + + if ( GUILayout.Button("Add New Type", EditorStyles.miniButton) ) { + GenericMenu.MenuFunction2 Selected = delegate (object o) + { + if ( o is System.Type ) { + AddType((System.Type)o); + } + if ( o is string ) { //namespace + foreach ( var type in alltypes ) { + if ( type.Namespace == (string)o ) { + AddType(type); + } + } + } + }; + + var menu = new GenericMenu(); + var namespaces = new List(); + menu.AddItem(new GUIContent("Classes/System/Object"), false, Selected, typeof(object)); + foreach ( var t in alltypes ) { + var a = ( string.IsNullOrEmpty(t.Namespace) ? "No Namespace/" : t.Namespace.Replace(".", "/") + "/" ) + t.FriendlyName(); + var b = string.IsNullOrEmpty(t.Namespace) ? string.Empty : " (" + t.Namespace + ")"; + var friendlyName = a + b; + var category = "Classes/"; + if ( t.IsValueType ) category = "Structs/"; + if ( t.IsInterface ) category = "Interfaces/"; + if ( t.IsEnum ) category = "Enumerations/"; + menu.AddItem(new GUIContent(category + friendlyName), typeList.Contains(t), Selected, t); + if ( t.Namespace != null && !namespaces.Contains(t.Namespace) ) { + namespaces.Add(t.Namespace); + } + } + + menu.AddSeparator("/"); + foreach ( var ns in namespaces ) { + var path = "Whole Namespaces/" + ns.Replace(".", "/") + "/Add " + ns; + menu.AddItem(new GUIContent(path), false, Selected, ns); + } + + menu.ShowAsBrowser("Add Preferred Type"); + } + + + if ( GUILayout.Button("Generate AOTClasses.cs and link.xml Files", EditorStyles.miniButton) ) { + if ( EditorUtility.DisplayDialog("Generate AOT Classes", "A script relevant to AOT compatibility for certain platforms will now be generated.", "OK") ) { + var path = EditorUtility.SaveFilePanelInProject("AOT Classes File", "AOTClasses", "cs", ""); + if ( !string.IsNullOrEmpty(path) ) { + AOTClassesGenerator.GenerateAOTClasses(path, TypePrefs.GetPreferedTypesList(true).ToArray()); + } + } + + if ( EditorUtility.DisplayDialog("Generate link.xml File", "A file relevant to 'code stripping' for platforms that have code stripping enabled will now be generated.", "OK") ) { + var path = EditorUtility.SaveFilePanelInProject("AOT link.xml", "link", "xml", ""); + if ( !string.IsNullOrEmpty(path) ) { + AOTClassesGenerator.GenerateLinkXML(path, TypePrefs.GetPreferedTypesList().ToArray()); + } + } + + AssetDatabase.Refresh(); + } + + GUILayout.BeginHorizontal(); + + if ( GUILayout.Button("Reset Defaults", EditorStyles.miniButtonLeft) ) { + if ( EditorUtility.DisplayDialog("Reset Preferred Types", "Are you sure?", "Yes", "NO!") ) { + TypePrefs.ResetTypeConfiguration(); + typeList = TypePrefs.GetPreferedTypesList(); + Save(); + } + } + + if ( GUILayout.Button("Save Preset", EditorStyles.miniButtonMid) ) { + var path = EditorUtility.SaveFilePanelInProject("Save Types Preset", "PreferredTypes", "typePrefs", ""); + if ( !string.IsNullOrEmpty(path) ) { + System.IO.File.WriteAllText(path, JSONSerializer.Serialize(typeof(List), typeList, null, true)); + AssetDatabase.Refresh(); + } + } + + if ( GUILayout.Button("Load Preset", EditorStyles.miniButtonRight) ) { + var path = EditorUtility.OpenFilePanel("Load Types Preset", "Assets", "typePrefs"); + if ( !string.IsNullOrEmpty(path) ) { + var json = System.IO.File.ReadAllText(path); + typeList = JSONSerializer.Deserialize>(json); + Save(); + } + } + + GUILayout.EndHorizontal(); + GUILayout.Space(5); + var syncPath = TypePrefs.SyncFilePath(); + EditorGUILayout.HelpBox(syncPath != null ? "List synced with file: " + syncPath.Replace(Application.dataPath, ".../Assets") : "No sync file found in '.../Assets/Editor Default Resources'. Types are currently saved in Unity EditorPrefs only.", MessageType.None); + GUILayout.Space(5); + + scrollPos = GUILayout.BeginScrollView(scrollPos); + for ( int i = 0; i < typeList.Count; i++ ) { + if ( EditorGUIUtility.isProSkin ) { GUI.color = Color.black.WithAlpha(i % 2 == 0 ? 0.3f : 0); } + if ( !EditorGUIUtility.isProSkin ) { GUI.color = Color.white.WithAlpha(i % 2 == 0 ? 0.3f : 0); } + GUILayout.BeginHorizontal("box"); + GUI.color = Color.white; + var type = typeList[i]; + if ( type == null ) { + GUILayout.Label("MISSING TYPE", GUILayout.Width(300)); + GUILayout.Label("---"); + } else { + var name = type.FriendlyName(); + var icon = TypePrefs.GetTypeIcon(type); + GUILayout.Label(icon, GUILayout.Width(16), GUILayout.Height(16)); + GUILayout.Label(name, GUILayout.Width(300)); + GUILayout.Label(type.Namespace); + } + if ( GUILayout.Button("X", GUILayout.Width(18)) ) { + RemoveType(type); + } + GUILayout.EndHorizontal(); + } + GUILayout.EndScrollView(); + + AcceptDrops(); + Repaint(); + } + + + //Handles Drag&Drop operations + void AcceptDrops() { + var e = Event.current; + if ( e.type == EventType.DragUpdated ) { + DragAndDrop.visualMode = DragAndDropVisualMode.Link; + } + + if ( e.type == EventType.DragPerform ) { + DragAndDrop.AcceptDrag(); + + foreach ( var o in DragAndDrop.objectReferences ) { + + if ( o == null ) { + continue; + } + + if ( o is MonoScript ) { + var type = ( o as MonoScript ).GetClass(); + if ( type != null ) { + AddType(type); + } + continue; + } + + AddType(o.GetType()); + } + } + } + + ///Add a type + void AddType(System.Type t) { + if ( !typeList.Contains(t) ) { + typeList.Add(t); + Save(); + ShowNotification(new GUIContent(string.Format("Type '{0}' Added!", t.FriendlyName()))); + return; + } + + ShowNotification(new GUIContent(string.Format("Type '{0}' is already in the list.", t.FriendlyName()))); + } + + ///Remove a type + void RemoveType(System.Type t) { + typeList.Remove(t); + Save(); + ShowNotification(new GUIContent(string.Format("Type '{0}' Removed.", t.FriendlyName()))); + } + + ///Save changes + void Save() { + TypePrefs.SetPreferedTypesList(typeList); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs.meta new file mode 100644 index 0000000..153071b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/TypePrefsEditorWindow.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b5cb128f12595e49879464cc9185944 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs new file mode 100644 index 0000000..0aa4fe8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs @@ -0,0 +1,103 @@ +#if UNITY_EDITOR + +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Xml; + +namespace ParadoxNotion.Design +{ + + ///Documentation from XML + public static class XMLDocs + { + private static Dictionary cachedElements = new Dictionary(); + private static Dictionary cachedSummaries = new Dictionary(); + + ///Returns a chached summary info for member + public static string GetMemberSummary(MemberInfo memberInfo) { + string result; + if ( cachedSummaries.TryGetValue(memberInfo, out result) ) { return result; } + var element = GetXmlElementForMember(memberInfo); + return cachedSummaries[memberInfo] = ( element != null ? element["summary"].InnerText.Trim() : "No Documentation Found" ); + } + + ///Returns a chached return info for method + public static string GetMethodReturn(MethodBase method) { + var element = GetXmlElementForMember(method); + return element != null ? element["returns"].InnerText.Trim() : null; + } + + ///Returns a semi-chached method parameter info for method + public static string GetMethodParameter(MethodBase method, ParameterInfo parameter) { return GetMethodParameter(method, parameter.Name); } + + ///Returns a semi-chached method parameter info for method + public static string GetMethodParameter(MethodBase method, string parameterName) { + var methodElement = GetXmlElementForMember(method); + if ( methodElement != null ) { + foreach ( var element in methodElement ) { + var xmlElement = element as XmlElement; + if ( xmlElement == null ) { continue; } + var found = xmlElement.Attributes["name"]; + if ( found != null && found.Value == parameterName ) { + return xmlElement.InnerText.Trim(); + } + } + } + return null; + } + + ///Returns a cached XML elements for member + static XmlElement GetXmlElementForMember(MemberInfo memberInfo) { + + if ( memberInfo is MethodInfo ) { + var method = (MethodInfo)memberInfo; + if ( method.IsPropertyAccessor() ) { memberInfo = method.GetAccessorProperty(); } + } + + if ( memberInfo == null ) { return null; } + + XmlElement element; + if ( cachedElements.TryGetValue(memberInfo, out element) ) { return element; } + + if ( memberInfo is MethodInfo ) { + element = GetMemberDoc((MethodInfo)memberInfo); + } else if ( memberInfo is Type ) { + element = GetTypeDoc((Type)memberInfo); + } else { + element = GetMemberDoc(memberInfo); + } + + return cachedElements[memberInfo] = element; + } + + static XmlElement GetTypeDoc(Type type) { return GetDoc(type, $"T:{type.FullName}"); } + + static XmlElement GetMemberDoc(MemberInfo memberInfo) { + if ( memberInfo is MethodInfo ) { + var methodInfo = (MethodInfo)memberInfo; + var parameters = methodInfo.GetParameters(); + if ( parameters.Length == 0 ) { + return GetDoc(methodInfo.DeclaringType, $"M:{methodInfo.DeclaringType.FullName}.{methodInfo.Name}"); + } + var parametersString = string.Empty; + for ( var i = 0; i < parameters.Length; i++ ) { + parametersString += parameters[i].ParameterType.FullName + ( i < parameters.Length - 1 ? "," : string.Empty ); + } + return GetDoc(methodInfo.DeclaringType, $"M:{methodInfo.DeclaringType.FullName}.{methodInfo.Name}({parametersString})"); + } + return GetDoc(memberInfo.DeclaringType, $"{memberInfo.MemberType.ToString()[0]}:{memberInfo.DeclaringType.FullName}.{memberInfo.Name}"); + } + + static XmlElement GetDoc(Type type, string pathName) { + var xmlPath = Path.ChangeExtension(type.Assembly.CodeBase.Substring(8), ".xml"); + if ( !File.Exists(xmlPath) ) { return null; } + var xmlDocument = new XmlDocument(); + xmlDocument.Load(xmlPath); + return xmlDocument.SelectSingleNode("//member[starts-with(@name, '" + pathName + "')]") as XmlElement; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs.meta new file mode 100644 index 0000000..cdf0948 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/PartialEditor/XMLDocs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 415f0b2943cba19478d5fd2295fbe249 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs new file mode 100644 index 0000000..e59eb97 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs @@ -0,0 +1,81 @@ +using System.Diagnostics; +using UnityEngine; + +namespace ParadoxNotion.Design +{ + + /// A simple Undo utility to avoid checking application playing, nulls and if unity editor all the time + public static class UndoUtility + { + public static string lastOperationName { get; private set; } + + ///Same as Undo.RecordObject. Checks null and only takes place in editor time + [Conditional("UNITY_EDITOR")] + public static void RecordObject(Object target, string name) { +#if UNITY_EDITOR + if ( Application.isPlaying || UnityEditor.EditorApplication.isUpdating || target == null ) { return; } + lastOperationName = name; + UnityEditor.Undo.RecordObject(target, name); +#endif + } + + ///Same as Undo.RegisterCompleteObjectUndo. Checks null and only takes place in editor time + [Conditional("UNITY_EDITOR")] + public static void RecordObjectComplete(Object target, string name) { +#if UNITY_EDITOR + if ( Application.isPlaying || UnityEditor.EditorApplication.isUpdating || target == null ) { return; } + lastOperationName = name; + UnityEditor.Undo.RegisterCompleteObjectUndo(target, name); +#endif + } + + ///Same as EditorUtility.SetDirty. Checks null and only takes place in editor time + [Conditional("UNITY_EDITOR")] + public static void SetDirty(Object target) { +#if UNITY_EDITOR + if ( Application.isPlaying || UnityEditor.EditorApplication.isUpdating || target == null ) { return; } + UnityEditor.EditorUtility.SetDirty(target); +#endif + } + + [Conditional("UNITY_EDITOR")] + public static void RecordObject(Object target, string name, System.Action operation) { + RecordObject(target, name); + operation(); + SetDirty(target); + } + + [Conditional("UNITY_EDITOR")] + public static void RecordObjectComplete(Object target, string name, System.Action operation) { + RecordObjectComplete(target, name); + operation(); + SetDirty(target); + } + + ///Shortcut to return the last undo operation name or the one provided + public static string GetLastOperationNameOr(string operation) { + return string.IsNullOrEmpty(lastOperationName) ? operation : lastOperationName; + } + + ///---------------------------------------------------------------------------------------------- + + ///Checks some commong event types and records undo if that is the case + public static void CheckUndo(Object target, string name) { + var e = Event.current; + if ( + ( e.type == EventType.MouseDown ) || + ( e.type == EventType.KeyDown ) || + ( e.type == EventType.DragPerform ) || + ( e.type == EventType.ExecuteCommand ) + ) { + lastOperationName = name; + RecordObject(target, name); + } + } + + ///Set target dirty if gui changed + public static void CheckDirty(Object target) { + if ( GUI.changed ) { SetDirty(target); } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs.meta new file mode 100644 index 0000000..92112d2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Design/UndoUtility.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 460225263b044784b9693cff84c19df9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime.meta new file mode 100644 index 0000000..382d052 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 98ed1f24cba738b4baad5b19eb93f767 +folderAsset: yes +timeCreated: 1427372418 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation.meta new file mode 100644 index 0000000..0219fb9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5164d470a6e38764b8d45186ceffdd52 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs new file mode 100644 index 0000000..634ae0e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs @@ -0,0 +1,261 @@ +//Adapted from Robert Penner equations + +namespace ParadoxNotion.Animation +{ + + using UnityEngine; + using System; + + public enum EaseType + { + Linear, + QuadraticIn, + QuadraticOut, + QuadraticInOut, + QuarticIn, + QuarticOut, + QuarticInOut, + QuinticIn, + QuinticOut, + QuinticInOut, + CubicIn, + CubicOut, + CubicInOut, + ExponentialIn, + ExponentialOut, + ExponentialInOut, + CircularIn, + CircularOut, + CircularInOut, + SinusoidalIn, + SinusoidalOut, + SinusoidalInOut, + ElasticIn, + ElasticOut, + ElasticInOut, + BounceIn, + BounceOut, + BounceInOut, + BackIn, + BackOut, + BackInOut + } + + ///Easing functions to be used for interpolation + public static class Easing + { + + ///---------------------------------------------------------------------------------------------- + + public static float Ease(EaseType type, float from, float to, float t) { + if ( t <= 0 ) { return from; } + if ( t >= 1 ) { return to; } + return Mathf.LerpUnclamped(from, to, Function(type)(t)); + } + + public static Vector3 Ease(EaseType type, Vector3 from, Vector3 to, float t) { + if ( t <= 0 ) { return from; } + if ( t >= 1 ) { return to; } + return Vector3.LerpUnclamped(from, to, Function(type)(t)); + } + + public static Quaternion Ease(EaseType type, Quaternion from, Quaternion to, float t) { + if ( t <= 0 ) { return from; } + if ( t >= 1 ) { return to; } + return Quaternion.LerpUnclamped(from, to, Function(type)(t)); + } + + public static Color Ease(EaseType type, Color from, Color to, float t) { + if ( t <= 0 ) { return from; } + if ( t >= 1 ) { return to; } + return Color.LerpUnclamped(from, to, Function(type)(t)); + } + + ///---------------------------------------------------------------------------------------------- + + public static Func Function(EaseType type) { + switch ( type ) { + case EaseType.Linear: return Linear; + case EaseType.QuadraticIn: return QuadraticIn; + case EaseType.QuadraticOut: return QuadraticOut; + case EaseType.QuadraticInOut: return QuadraticInOut; + case EaseType.QuarticIn: return QuarticIn; + case EaseType.QuarticOut: return QuarticOut; + case EaseType.QuarticInOut: return QuarticInOut; + case EaseType.QuinticIn: return QuinticIn; + case EaseType.QuinticOut: return QuinticOut; + case EaseType.QuinticInOut: return QuinticInOut; + case EaseType.CubicIn: return CubicIn; + case EaseType.CubicOut: return CubicOut; + case EaseType.CubicInOut: return CubicInOut; + case EaseType.ExponentialIn: return ExponentialIn; + case EaseType.ExponentialOut: return ExponentialOut; + case EaseType.ExponentialInOut: return ExponentialInOut; + case EaseType.CircularIn: return CircularIn; + case EaseType.CircularOut: return CircularOut; + case EaseType.CircularInOut: return CircularInOut; + case EaseType.SinusoidalIn: return SinusoidalIn; + case EaseType.SinusoidalOut: return SinusoidalOut; + case EaseType.SinusoidalInOut: return SinusoidalInOut; + case EaseType.ElasticIn: return ElasticIn; + case EaseType.ElasticOut: return ElasticOut; + case EaseType.ElasticInOut: return ElasticInOut; + case EaseType.BounceIn: return BounceIn; + case EaseType.BounceOut: return BounceOut; + case EaseType.BounceInOut: return BounceInOut; + case EaseType.BackIn: return BackIn; + case EaseType.BackOut: return BackOut; + case EaseType.BackInOut: return BackInOut; + default: throw new ArgumentOutOfRangeException(); + } + } + + ///---------------------------------------------------------------------------------------------- + + public static float Linear(float t) { + return t; + } + + public static float QuadraticIn(float t) { + return t * t; + } + + public static float QuadraticOut(float t) { + return 1f - ( 1f - t ) * ( 1f - t ); + } + + public static float QuadraticInOut(float t) { + return t < 0.5f ? 2f * t * t : 1f - Mathf.Pow(-2f * t + 2f, 2f) / 2f; + } + + public static float QuarticIn(float t) { + return t * t * t * t; + } + + public static float QuarticOut(float t) { + return 1f - ( --t * t * t * t ); + } + + public static float QuarticInOut(float t) { + if ( ( t *= 2f ) < 1f ) + return 0.5f * t * t * t * t; + return -0.5f * ( ( t -= 2f ) * t * t * t - 2f ); + } + + public static float QuinticIn(float t) { + return t * t * t * t * t; + } + + public static float QuinticOut(float t) { + return --t * t * t * t * t + 1f; + } + + public static float QuinticInOut(float t) { + if ( ( t *= 2f ) < 1 ) + return 0.5f * t * t * t * t * t; + return 0.5f * ( ( t -= 2f ) * t * t * t * t + 2f ); + } + + public static float CubicIn(float t) { + return t * t * t; + } + + public static float CubicOut(float t) { + return --t * t * t + 1f; + } + + public static float CubicInOut(float t) { + return t < 0.5 ? 4f * t * t * t : 1f - Mathf.Pow(-2f * t + 2f, 3f) / 2f; + } + + public static float SinusoidalIn(float t) { + return 1f - Mathf.Cos(t * Mathf.PI / 2f); + } + + public static float SinusoidalOut(float t) { + return Mathf.Sin(t * Mathf.PI / 2f); + } + + public static float SinusoidalInOut(float t) { + return 0.5f * ( 1f - Mathf.Cos(Mathf.PI * t) ); + } + + public static float ExponentialIn(float t) { + return t == 0f ? 0f : Mathf.Pow(2f, 10f * t - 10f); + } + + public static float ExponentialOut(float t) { + return t == 1f ? 1f : 1f - Mathf.Pow(2f, -10f * t); + } + + public static float ExponentialInOut(float t) { + return t < 0.5f ? Mathf.Pow(2f, 20f * t - 10f) / 2f : ( 2f - Mathf.Pow(2f, -20f * t + 10f) ) / 2f; + } + + public static float CircularIn(float t) { + return 1f - Mathf.Sqrt(1f - t * t); + } + + public static float CircularOut(float t) { + return Mathf.Sqrt(1f - ( --t * t )); + } + + public static float CircularInOut(float t) { + return t < 0.5f ? ( Mathf.Sqrt(1f - t * t) - 1f ) / 2 : ( Mathf.Sqrt(1f - ( t -= 2f ) * t) + 1f ) / 2; + } + + public static float ElasticIn(float t) { + float x = ( 2f * Mathf.PI ) / 3f; + return -Mathf.Pow(2f, 10f * t - 10f) * Mathf.Sin(( t * 10f - 10.75f ) * x); + } + + public static float ElasticOut(float t) { + float x = ( 2f * Mathf.PI ) / 3f; + return Mathf.Pow(2f, -10f * t) * Mathf.Sin(( t * 10f - 0.75f ) * x) + 1f; + } + + public static float ElasticInOut(float t) { + float x = ( 2f * Mathf.PI ) / 4.5f; + if ( t < 0.5f ) + return -( Mathf.Pow(2f, 20f * t - 10f) * Mathf.Sin(( 20f * t - 11.125f ) * x) ) / 2f; + return ( Mathf.Pow(2f, -20f * t + 10f) * Mathf.Sin(( 20f * t - 11.125f ) * x) ) / 2f + 1f; + } + + public static float BounceIn(float t) { + return 1f - BounceOut(1f - t); + } + + public static float BounceOut(float t) { + if ( t < ( 1f / 2.75f ) ) { + return 7.5625f * t * t; + } else if ( t < ( 2f / 2.75f ) ) { + return 7.5625f * ( t -= ( 1.5f / 2.75f ) ) * t + 0.75f; + } else if ( t < ( 2.5f / 2.75f ) ) { + return 7.5625f * ( t -= ( 2.25f / 2.75f ) ) * t + 0.9375f; + } else { + return 7.5625f * ( t -= ( 2.625f / 2.75f ) ) * t + 0.984375f; + } + } + + public static float BounceInOut(float t) { + return t < 0.5f ? BounceIn(t * 2f) * 0.5f : BounceOut(t * 2f - 1f) * 0.5f + 0.5f; + } + + public static float BackIn(float t) { + float s = 1.70158f; + return t * t * ( ( s + 1f ) * t - s ); + } + + public static float BackOut(float t) { + float s = 1.70158f; + return --t * t * ( ( s + 1f ) * t + s ) + 1f; + } + + public static float BackInOut(float t) { + float s = 1.70158f * 1.525f; + if ( ( t *= 2f ) < 1f ) + return 0.5f * ( t * t * ( ( s + 1 ) * t - s ) ); + return 0.5f * ( ( t -= 2f ) * t * ( ( s + 1f ) * t + s ) + 2f ); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs.meta new file mode 100644 index 0000000..e3796e8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Animation/Easing.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb2ca6ca572280149964596d794ec706 +timeCreated: 1537185035 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs new file mode 100644 index 0000000..a1a6fa0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs @@ -0,0 +1,24 @@ +//common generic delegates + +namespace ParadoxNotion +{ + public delegate void ActionCall(); + public delegate void ActionCall(T1 a); + public delegate void ActionCall(T1 a, T2 b); + public delegate void ActionCall(T1 a, T2 b, T3 c); + public delegate void ActionCall(T1 a, T2 b, T3 c, T4 d); + public delegate void ActionCall(T1 a, T2 b, T3 c, T4 d, T5 e); + public delegate void ActionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f); + public delegate void ActionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f, T7 g); + public delegate void ActionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f, T7 g, T8 h); + + public delegate TResult FunctionCall(); + public delegate TResult FunctionCall(T1 a); + public delegate TResult FunctionCall(T1 a, T2 b); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c, T4 d); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c, T4 d, T5 e); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f, T7 g); + public delegate TResult FunctionCall(T1 a, T2 b, T3 c, T4 d, T5 e, T6 f, T7 g, T8 h); +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs.meta new file mode 100644 index 0000000..7586747 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Delegates.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea94db230ea657945a86990788542830 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs new file mode 100644 index 0000000..83147a7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs @@ -0,0 +1,51 @@ +using System; +using UnityEngine; + +namespace ParadoxNotion +{ + + ///Defines a dynamic (type-wise) parameter. + [Serializable] + sealed public class DynamicParameterDefinition : ISerializationCallbackReceiver + { + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( type != null ) { _type = type.FullName; } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + type = ReflectionTools.GetType(_type, /*fallback?*/ true); + } + + [SerializeField] private string _ID; + [SerializeField] private string _name; + [SerializeField] private string _type; + + //The ID of the definition + public string ID { + get + { + //for correct update prior versions + if ( string.IsNullOrEmpty(_ID) ) { _ID = name; } + return _ID; + } + private set { _ID = value; } + } + + //The name of the definition + public string name { + get { return _name; } + set { _name = value; } + } + + ///The Type of the definition + public Type type { get; set; } + + public DynamicParameterDefinition() { } + public DynamicParameterDefinition(string name, Type type) { + this.ID = Guid.NewGuid().ToString(); + this.name = name; + this.type = type; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs.meta new file mode 100644 index 0000000..f7f7b71 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/DynamicParameterDefinition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f17f63b2bb18a3149a3e07f5f86b5f02 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs new file mode 100644 index 0000000..7760e68 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs @@ -0,0 +1,110 @@ +namespace ParadoxNotion +{ + + /// Enumeration for comparisons + public enum CompareMethod + { + EqualTo, + GreaterThan, + LessThan, + GreaterOrEqualTo, + LessOrEqualTo + } + + /// Enumeration for Operations (Add, Subtract, Equality etc) + public enum OperationMethod + { + Set, + Add, + Subtract, + Multiply, + Divide + } + + /// Enumeration for mouse button keys + public enum ButtonKeys + { + Left = 0, + Right = 1, + Middle = 2 + } + + /// Enumeration for press types for inputs + public enum PressTypes + { + Down, + Up, + Pressed + } + + /// Enumeration for mouse press + public enum MouseClickEvent + { + MouseDown = 0, + MouseUp = 1 + } + + /// Enumeration for trigger unity events + public enum TriggerTypes + { + TriggerEnter = 0, + TriggerExit = 1, + TriggerStay = 2 + } + + /// Enumeration for collision unity events + public enum CollisionTypes + { + CollisionEnter = 0, + CollisionExit = 1, + CollisionStay = 2 + } + + /// Enumeration for mouse unity events + public enum MouseInteractionTypes + { + MouseEnter = 0, + MouseExit = 1, + MouseOver = 2 + } + + /// Enumeration for Animation playing direction + public enum PlayDirections + { + Forward, + Backward, + Toggle + } + + /// Enumeration for planar direction + public enum PlanarDirection + { + Horizontal, + Vertical, + Auto + } + + /// Enumeration Alignment 2x2 + public enum Alignment2x2 + { + Default, + Left, + Right, + Top, + Bottom + } + + /// Enumeration Alignment 3x3 + public enum Alignment3x3 + { + TopLeft, + TopCenter, + TopRight, + MiddleLeft, + MiddleCenter, + MiddleRight, + BottomLeft, + BottomCenter, + BottomRight + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs.meta new file mode 100644 index 0000000..70e2e6a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Enums.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8edf60b49210fca4b84c66f4cdec0fc7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs new file mode 100644 index 0000000..16c7a58 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs @@ -0,0 +1,85 @@ +using System.Collections.Generic; + +namespace ParadoxNotion +{ + + ///A simple general purpose hierarchical tree. + public class HierarchyTree + { + //..with nothing inside right now + + ///A simple general purpose hierarchical tree element. + public class Element + { + + private object _reference; + private Element _parent; + private List _children; + + public object reference => _reference; + public Element parent => _parent; + public IEnumerable children => _children; + + public Element(object reference) { + this._reference = reference; + } + + ///Add a child element + public Element AddChild(Element child) { + if ( _children == null ) { _children = new List(); } + child._parent = this; + _children.Add(child); + return child; + } + + ///Remove a child element + public void RemoveChild(Element child) { + if ( _children != null ) { + _children.Remove(child); + } + } + + ///Get root element + public Element GetRoot() { + var current = _parent; + while ( current != null ) { + current = current._parent; + } + return current; + } + + ///Returns the first found Element that references target object + public Element FindReferenceElement(object target) { + if ( this._reference == target ) { return this; } + if ( _children == null ) { return null; } + for ( var i = 0; i < _children.Count; i++ ) { + var sub = _children[i].FindReferenceElement(target); + if ( sub != null ) { + return sub; + } + } + return null; + } + + ///Get first parent reference of type T, including self element + public T GetFirstParentReferenceOfType() { + if ( this._reference is T ) { return (T)_reference; } + return _parent != null ? _parent.GetFirstParentReferenceOfType() : default(T); + } + + ///Get all children references of type T recursively + public IEnumerable GetAllChildrenReferencesOfType() { + if ( _children == null ) { yield break; } + for ( var i = 0; i < _children.Count; i++ ) { + var element = _children[i]; + if ( element._reference is T ) { + yield return (T)element._reference; + } + foreach ( var deep in element.GetAllChildrenReferencesOfType() ) { + yield return deep; + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs.meta new file mode 100644 index 0000000..c07072d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/HierarchyTree.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5ce798a6776e2444ab1be31bb0fd9703 +timeCreated: 1537847297 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs new file mode 100644 index 0000000..279cc3f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs @@ -0,0 +1,45 @@ +using UnityEngine; + +namespace ParadoxNotion +{ + ///Common interface between EventData and EventData + public interface IEventData + { + GameObject receiver { get; } + object sender { get; } + object valueBoxed { get; } + } + + ///Dispatched within EventRouter and contains data about the event + public struct EventData : IEventData + { + public GameObject receiver { get; private set; } + public object sender { get; private set; } + public object value { get; private set; } + public object valueBoxed => value; + public EventData(object value, GameObject receiver, object sender) { + this.value = value; + this.receiver = receiver; + this.sender = sender; + } + public EventData(GameObject receiver, object sender) { + this.value = null; + this.receiver = receiver; + this.sender = sender; + } + } + + ///Dispatched within EventRouter and contains data about the event + public struct EventData : IEventData + { + public GameObject receiver { get; private set; } + public object sender { get; private set; } + public T value { get; private set; } + public object valueBoxed => value; + public EventData(T value, GameObject receiver, object sender) { + this.receiver = receiver; + this.sender = sender; + this.value = value; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs.meta new file mode 100644 index 0000000..c4f3f85 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/IEventData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4afd82dfa72065b448ec4d012da280f9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs new file mode 100644 index 0000000..c315442 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs @@ -0,0 +1,113 @@ +using UnityEngine; + + +namespace ParadoxNotion +{ + + /// Has some prety common operations amongst values. + public static class OperationTools + { + + public static string GetOperationString(OperationMethod om) { + + if ( om == OperationMethod.Set ) + return " = "; + if ( om == OperationMethod.Add ) + return " += "; + if ( om == OperationMethod.Subtract ) + return " -= "; + if ( om == OperationMethod.Multiply ) + return " *= "; + if ( om == OperationMethod.Divide ) + return " /= "; + return string.Empty; + } + + public static float Operate(float a, float b, OperationMethod om, float delta = 1f) { + if ( om == OperationMethod.Set ) + return b * delta; + if ( om == OperationMethod.Add ) + return a + ( b * delta ); + if ( om == OperationMethod.Subtract ) + return a - ( b * delta ); + if ( om == OperationMethod.Multiply ) + return a * ( b * delta ); + if ( om == OperationMethod.Divide ) + return a / ( b * delta ); + return a; + } + + public static int Operate(int a, int b, OperationMethod om) { + if ( om == OperationMethod.Set ) + return b; + if ( om == OperationMethod.Add ) + return a + b; + if ( om == OperationMethod.Subtract ) + return a - b; + if ( om == OperationMethod.Multiply ) + return a * b; + if ( om == OperationMethod.Divide ) + return a / b; + return a; + } + + public static Vector3 Operate(Vector3 a, Vector3 b, OperationMethod om, float delta = 1f) { + if ( om == OperationMethod.Set ) + return b * delta; + if ( om == OperationMethod.Add ) + return a + ( b * delta ); + if ( om == OperationMethod.Subtract ) + return a - ( b * delta ); + if ( om == OperationMethod.Multiply ) + return Vector3.Scale(a, ( b * delta )); + if ( om == OperationMethod.Divide ) { + b *= delta; + return new Vector3(( a ).x / ( b ).x, ( a ).y / ( b ).y, ( a ).z / ( b ).z); + } + return a; + } + + public static string GetCompareString(CompareMethod cm) { + + if ( cm == CompareMethod.EqualTo ) + return " == "; + if ( cm == CompareMethod.GreaterThan ) + return " > "; + if ( cm == CompareMethod.LessThan ) + return " < "; + if ( cm == CompareMethod.GreaterOrEqualTo ) + return " >= "; + if ( cm == CompareMethod.LessOrEqualTo ) + return " <= "; + return string.Empty; + } + + public static bool Compare(float a, float b, CompareMethod cm, float floatingPoint) { + if ( cm == CompareMethod.EqualTo ) + return Mathf.Abs(a - b) <= floatingPoint; + if ( cm == CompareMethod.GreaterThan ) + return a > b; + if ( cm == CompareMethod.LessThan ) + return a < b; + if ( cm == CompareMethod.GreaterOrEqualTo ) + return a >= b; + if ( cm == CompareMethod.LessOrEqualTo ) + return a <= b; + return true; + } + + public static bool Compare(int a, int b, CompareMethod cm) { + if ( cm == CompareMethod.EqualTo ) + return a == b; + if ( cm == CompareMethod.GreaterThan ) + return a > b; + if ( cm == CompareMethod.LessThan ) + return a < b; + if ( cm == CompareMethod.GreaterOrEqualTo ) + return a >= b; + if ( cm == CompareMethod.LessOrEqualTo ) + return a <= b; + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs.meta new file mode 100644 index 0000000..ce9597d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/OperationTools.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 78f36360dab60254f9e297cfd18b7bf7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs new file mode 100644 index 0000000..b146673 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs @@ -0,0 +1,1378 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Reflection.Emit; +using System.Runtime.Serialization; +using Logger = ParadoxNotion.Services.Logger; + +namespace ParadoxNotion +{ + + ///Reflection utility and extention methods + public static class ReflectionTools + { + public const BindingFlags FLAGS_ALL = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy; + public const BindingFlags FLAGS_ALL_DECLARED = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + + ///---------------------------------------------------------------------------------------------- + + private static Assembly[] _loadedAssemblies; + private static Type[] _allTypes; + private static object[] _tempArgs; + private static Dictionary _typesMap; + private static Dictionary _subTypesMap; + private static Dictionary _methodSpecialType; + private static Dictionary _typeFriendlyName; + private static Dictionary _typeFriendlyNameCompileSafe; + private static Dictionary _methodSignatures; + private static Dictionary _typeConstructors; + private static Dictionary _typeMethods; + private static Dictionary _typeFields; + private static Dictionary _typeProperties; + private static Dictionary _typeEvents; + // private static Dictionary _typeAttributes; + private static Dictionary _memberAttributes; + private static Dictionary _obsoleteCache; + private static Dictionary _typeExtensions; + private static Dictionary _genericArgsTypeCache; + private static Dictionary _genericArgsMathodCache; + + static ReflectionTools() { FlushMem(); } + +#if UNITY_EDITOR + [UnityEditor.Callbacks.DidReloadScripts] +#endif + public static void FlushMem() { + _loadedAssemblies = null; + _allTypes = null; + _tempArgs = new object[1]; + _typesMap = new Dictionary(); + _subTypesMap = new Dictionary(); + _methodSpecialType = new Dictionary(); + _typeFriendlyName = new Dictionary(); + _typeFriendlyNameCompileSafe = new Dictionary(); + _methodSignatures = new Dictionary(); + _typeConstructors = new Dictionary(); + _typeMethods = new Dictionary(); + _typeFields = new Dictionary(); + _typeProperties = new Dictionary(); + _typeEvents = new Dictionary(); + // _typeAttributes = new Dictionary(); + _memberAttributes = new Dictionary(); + _obsoleteCache = new Dictionary(); + _typeExtensions = new Dictionary(); + _genericArgsTypeCache = new Dictionary(); + _genericArgsMathodCache = new Dictionary(); + } + + ///---------------------------------------------------------------------------------------------- + + private static Assembly[] loadedAssemblies { + get { return _loadedAssemblies != null ? _loadedAssemblies : _loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); } + } + + //Alternative to Type.GetType to work with FullName instead of AssemblyQualifiedName when looking up a type by string + //This also handles Generics and their arguments, assembly changes and namespace changes to some extend. + public static Type GetType(string typeFullName) { return GetType(typeFullName, false, null); } + public static Type GetType(string typeFullName, Type fallbackAssignable) { return GetType(typeFullName, true, fallbackAssignable); } + public static Type GetType(string typeFullName, bool fallbackNoNamespace = false, Type fallbackAssignable = null) { + + if ( string.IsNullOrEmpty(typeFullName) ) { + return null; + } + + Type type = null; + if ( _typesMap.TryGetValue(typeFullName, out type) ) { + return type; + } + + //direct look up + type = GetTypeDirect(typeFullName); + if ( type != null ) { + return _typesMap[typeFullName] = type; + } + + //handle generics now + type = TryResolveGenericType(typeFullName, fallbackNoNamespace, fallbackAssignable); + if ( type != null ) { + // Logger.LogWarning(string.Format("Type with name '{0}' was resolved using a fallback resolution (Generics).", typeFullName), "Type Request"); + return _typesMap[typeFullName] = type; + } + + //make use of DeserializeFromAttribute + type = TryResolveDeserializeFromAttribute(typeFullName); + if ( type != null ) { + // Logger.LogWarning(string.Format("Type with name '{0}' was resolved using a fallback resolution (DeserializeFromAttribute).", typeFullName), "Type Request"); + return _typesMap[typeFullName] = type; + } + + //get type regardless namespace + if ( fallbackNoNamespace ) { + type = TryResolveWithoutNamespace(typeFullName, fallbackAssignable); + if ( type != null ) { + // Logger.LogWarning(string.Format("Type with name '{0}' was resolved using a fallback resolution (NoNamespace).", typeFullName), "Type Request"); + return _typesMap[typeFullName] = type; + } + } + + Logger.LogError(string.Format("Type with name '{0}' could not be resolved.", typeFullName), "Type Request"); + return _typesMap[typeFullName] = null; + } + + //direct type look up with it's FullName + static Type GetTypeDirect(string typeFullName) { + var type = Type.GetType(typeFullName); + if ( type != null ) { + return type; + } + + for ( var i = 0; i < loadedAssemblies.Length; i++ ) { + var asm = loadedAssemblies[i]; + try { type = asm.GetType(typeFullName); } + catch { continue; } + if ( type != null ) { + return type; + } + } + + return null; + } + + //Resolve generic types by their .FullName or .ToString + //Remark: a generic's type .FullName returns a string where it's arguments only are instead printed as AssemblyQualifiedName. + static Type TryResolveGenericType(string typeFullName, bool fallbackNoNamespace = false, Type fallbackAssignable = null) { + + //ensure that it is a generic type implementation, not a definition + if ( typeFullName.Contains('`') == false || typeFullName.Contains('[') == false ) { + return null; + } + + try //big try/catch block cause maybe there is a bug. Hopefully not. + { + var quoteIndex = typeFullName.IndexOf('`'); + var genericTypeDefName = typeFullName.Substring(0, quoteIndex + 2); + var genericTypeDef = GetType(genericTypeDefName, fallbackNoNamespace, fallbackAssignable); + if ( genericTypeDef == null ) { + return null; + } + + int argCount = Convert.ToInt32(typeFullName.Substring(quoteIndex + 1, 1)); + var content = typeFullName.Substring(quoteIndex + 2, typeFullName.Length - quoteIndex - 2); + string[] split = null; + if ( content.StartsWith("[[") ) { //this means that assembly qualified name is contained. Name was generated with FullName. + var startIndex = typeFullName.IndexOf("[[") + 2; + var endIndex = typeFullName.LastIndexOf("]]"); + content = typeFullName.Substring(startIndex, endIndex - startIndex); + split = content.Split(new string[] { "],[" }, argCount, StringSplitOptions.RemoveEmptyEntries); + } else { //this means that the name was generated with type.ToString(). + var startIndex = typeFullName.IndexOf('[') + 1; + var endIndex = typeFullName.LastIndexOf(']'); + content = typeFullName.Substring(startIndex, endIndex - startIndex); + split = content.Split(new char[] { ',' }, argCount, StringSplitOptions.RemoveEmptyEntries); + } + + var argTypes = new Type[argCount]; + for ( var i = 0; i < split.Length; i++ ) { + var subName = split[i]; + if ( !subName.Contains('`') && subName.Contains(',') ) { //remove assembly info since we work with FullName, but only if it's not yet another generic. + subName = subName.Substring(0, subName.IndexOf(',')); + } + + var argType = GetType(subName, true /*fallback no namespace*/); + if ( argType == null ) { + return null; + } + argTypes[i] = argType; + } + + return genericTypeDef.RTMakeGenericType(argTypes); + } + + catch ( Exception e ) { + ParadoxNotion.Services.Logger.LogException(e, "Type Request Bug. Please report. :-("); + return null; + } + } + + //uterly slow, but only happens when we have a null type + static Type TryResolveDeserializeFromAttribute(string typeName) { + var allTypes = GetAllTypes(true); + for ( var i = 0; i < allTypes.Length; i++ ) { + var t = allTypes[i]; + var att = t.GetCustomAttribute(typeof(Serialization.DeserializeFromAttribute), false) as Serialization.DeserializeFromAttribute; + if ( att != null && att.previousTypeFullName == typeName ) { + return t; + } + } + return null; + } + + //fallback type look up with it's FullName. This is slow. + static Type TryResolveWithoutNamespace(string typeName, Type fallbackAssignable = null) { + + //dont handle generic implementations this way (still handles definitions though). + if ( typeName.Contains('`') && typeName.Contains('[') ) { + return null; + } + + //remove assembly info if any + if ( typeName.Contains(',') ) { + typeName = typeName.Substring(0, typeName.IndexOf(',')); + } + + //ensure strip namespace + if ( typeName.Contains('.') ) { + var dotIndex = typeName.LastIndexOf('.') + 1; + typeName = typeName.Substring(dotIndex, typeName.Length - dotIndex); + } + + //check all types + var allTypes = GetAllTypes(true); + for ( var i = 0; i < allTypes.Length; i++ ) { + var t = allTypes[i]; + if ( t.Name == typeName && ( fallbackAssignable == null || fallbackAssignable.RTIsAssignableFrom(t) ) ) { + return t; + } + } + return null; + } + + ///---------------------------------------------------------------------------------------------- + + ///Get every single type in loaded assemblies + public static Type[] GetAllTypes(bool includeObsolete) { + if ( _allTypes != null ) { + return _allTypes; + } + + var result = new List(); + for ( var i = 0; i < loadedAssemblies.Length; i++ ) { + var asm = loadedAssemblies[i]; + try { result.AddRange(asm.GetExportedTypes().Where(t => includeObsolete == true || !t.RTIsDefined(false))); } + catch { continue; } + } + return _allTypes = result.OrderBy(t => t.Namespace).ThenBy(t => t.FriendlyName()).ToArray(); + } + + ///Get a collection of types assignable to provided type, excluding Abstract types + public static Type[] GetImplementationsOf(Type baseType) { + + Type[] result = null; + if ( _subTypesMap.TryGetValue(baseType, out result) ) { + return result; + } + + var temp = new List(); + var allTypes = GetAllTypes(false); + for ( var i = 0; i < allTypes.Length; i++ ) { + var type = allTypes[i]; + if ( baseType.RTIsAssignableFrom(type) && !type.RTIsAbstract() ) { + temp.Add(type); + } + } + return _subTypesMap[baseType] = temp.ToArray(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns an object[] with a single element, that can for example be used as method invocation args + public static object[] SingleTempArgsArray(object arg) { + _tempArgs[0] = arg; + return _tempArgs; + } + + ///---------------------------------------------------------------------------------------------- + + //Method operator special name to friendly name map + public readonly static Dictionary op_FriendlyNamesLong = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + {"op_Equality", "Equal"}, + {"op_Inequality", "Not Equal"}, + {"op_GreaterThan", "Greater"}, + {"op_LessThan", "Less"}, + {"op_GreaterThanOrEqual", "Greater Or Equal"}, + {"op_LessThanOrEqual", "Less Or Equal"}, + {"op_Addition", "Add"}, + {"op_Subtraction", "Subtract"}, + {"op_Division", "Divide"}, + {"op_Multiply", "Multiply"}, + {"op_UnaryNegation", "Negate"}, + {"op_UnaryPlus", "Positive"}, + {"op_Increment", "Increment"}, + {"op_Decrement", "Decrement"}, + {"op_LogicalNot", "NOT"}, + {"op_OnesComplement", "Complements"}, + {"op_False", "FALSE"}, + {"op_True", "TRUE"}, + {"op_Modulus", "MOD"}, + {"op_BitwiseAnd", "AND"}, + {"op_BitwiseOR", "OR"}, + {"op_LeftShift", "Shift Left"}, + {"op_RightShift", "Shift Right"}, + {"op_ExclusiveOr", "XOR"}, + {"op_Implicit", "Convert"}, + {"op_Explicit", "Convert"}, + }; + + //Method operator special name to friendly name map + public readonly static Dictionary op_FriendlyNamesShort = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + {"op_Equality", "="}, + {"op_Inequality", "≠"}, + {"op_GreaterThan", ">"}, + {"op_LessThan", "<"}, + {"op_GreaterThanOrEqual", "≥"}, + {"op_LessThanOrEqual", "≤"}, + {"op_Addition", "+"}, + {"op_Subtraction", "-"}, + {"op_Division", "÷"}, + {"op_Multiply", "×"}, + {"op_UnaryNegation", "Negate"}, + {"op_UnaryPlus", "Positive"}, + {"op_Increment", "++"}, + {"op_Decrement", "--"}, + {"op_LogicalNot", "NOT"}, + {"op_OnesComplement", "~"}, + {"op_False", "FALSE"}, + {"op_True", "TRUE"}, + {"op_Modulus", "MOD"}, + {"op_BitwiseAnd", "AND"}, + {"op_BitwiseOR", "OR"}, + {"op_LeftShift", "<<"}, + {"op_RightShift", ">>"}, + {"op_ExclusiveOr", "XOR"}, + {"op_Implicit", "Convert"}, + {"op_Explicit", "Convert"}, + }; + + ///Operator C# to friendly aliases + public readonly static Dictionary op_CSharpAliases = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + {"!=", "≠"}, + {">=", "≥"}, + {"<=", "≤"}, + {"/", "÷"}, + {"*", "×"}, + }; + + public const string METHOD_SPECIAL_NAME_GET = "get_"; + public const string METHOD_SPECIAL_NAME_SET = "set_"; + public const string METHOD_SPECIAL_NAME_ADD = "add_"; + public const string METHOD_SPECIAL_NAME_REMOVE = "remove_"; + public const string METHOD_SPECIAL_NAME_OP = "op_"; + + public enum MethodType + { + Normal = 0, + PropertyAccessor = 1, + Event = 2, + Operator = 3, + } + + ///Returns the type of method case of accessor, operator or event. + public static MethodType GetMethodSpecialType(this MethodBase method) { + + MethodType methodType; + if ( _methodSpecialType.TryGetValue(method, out methodType) ) { + return methodType; + } + + var name = method.Name; + if ( method.IsSpecialName ) { + if ( name.StartsWith(METHOD_SPECIAL_NAME_GET) || name.StartsWith(METHOD_SPECIAL_NAME_SET) ) { + return _methodSpecialType[method] = MethodType.PropertyAccessor; + } + if ( name.StartsWith(METHOD_SPECIAL_NAME_ADD) || name.StartsWith(METHOD_SPECIAL_NAME_REMOVE) ) { + return _methodSpecialType[method] = MethodType.Event; + } + if ( name.StartsWith(METHOD_SPECIAL_NAME_OP) ) { + return _methodSpecialType[method] = MethodType.Operator; + } + } + return _methodSpecialType[method] = MethodType.Normal; + } + + ///Get a friendly name for the type + public static string FriendlyName(this Type t, bool compileSafe = false) { + + if ( t == null ) { + return null; + } + + if ( !compileSafe && t.IsByRef ) { + t = t.GetElementType(); + } + + if ( !compileSafe && t == typeof(UnityEngine.Object) ) { + return "UnityObject"; + } + + string s; + if ( !compileSafe && _typeFriendlyName.TryGetValue(t, out s) ) { + return s; + } + + if ( compileSafe && _typeFriendlyNameCompileSafe.TryGetValue(t, out s) ) { + return s; + } + + s = compileSafe ? t.FullName : t.Name; + if ( !compileSafe ) { + if ( s == "Single" ) { s = "Float"; } + if ( s == "Single[]" ) { s = "Float[]"; } + if ( s == "Int32" ) { s = "Integer"; } + if ( s == "Int32[]" ) { s = "Integer[]"; } + } + + if ( t.RTIsGenericParameter() ) { + s = "T"; + } + + if ( t.RTIsGenericType() ) { + s = compileSafe && !string.IsNullOrEmpty(t.Namespace) ? t.Namespace + "." + t.Name : t.Name; + var args = t.RTGetGenericArguments(); + if ( args.Length != 0 ) { + + s = s.Replace("`" + args.Length.ToString(), ""); + + s += compileSafe ? "<" : " ("; + for ( var i = 0; i < args.Length; i++ ) { + s += ( i == 0 ? "" : ", " ) + args[i].FriendlyName(compileSafe); + } + s += compileSafe ? ">" : ")"; + } + } + + if ( compileSafe ) { + return _typeFriendlyNameCompileSafe[t] = s; + } + return _typeFriendlyName[t] = s; + } + + ///Get a friendly name for member info + public static string FriendlyName(this MemberInfo info) { + if ( info == null ) { return null; } + if ( info is Type ) { return FriendlyName((Type)info); } + var type = info.ReflectedType.FriendlyName(); + return type + '.' + info.Name; + } + + ///Get a friendly name of a methd which is the case for when it's a special name. + public static string FriendlyName(this MethodBase method) { var specialType = MethodType.Normal; return method.FriendlyName(out specialType); } + public static string FriendlyName(this MethodBase method, out MethodType specialNameType) { + specialNameType = MethodType.Normal; + var methodName = method.Name; + if ( method.IsSpecialName ) { + if ( methodName.StartsWith(METHOD_SPECIAL_NAME_GET) ) { + methodName = "Get " + methodName.Substring(METHOD_SPECIAL_NAME_GET.Length).CapitalizeFirst(); + specialNameType = MethodType.PropertyAccessor; + return methodName; + } + if ( methodName.StartsWith(METHOD_SPECIAL_NAME_SET) ) { + methodName = "Set " + methodName.Substring(METHOD_SPECIAL_NAME_SET.Length).CapitalizeFirst(); + specialNameType = MethodType.PropertyAccessor; + return methodName; + } + if ( methodName.StartsWith(METHOD_SPECIAL_NAME_ADD) ) { + methodName = methodName.Substring(METHOD_SPECIAL_NAME_ADD.Length) + " +="; + specialNameType = MethodType.Event; + return methodName; + } + if ( methodName.StartsWith(METHOD_SPECIAL_NAME_REMOVE) ) { + methodName = methodName.Substring(METHOD_SPECIAL_NAME_REMOVE.Length) + " -="; + specialNameType = MethodType.Event; + return methodName; + } + if ( methodName.StartsWith(METHOD_SPECIAL_NAME_OP) ) { + op_FriendlyNamesLong.TryGetValue(methodName, out methodName); + specialNameType = MethodType.Operator; + return methodName; + } + } + return methodName; + } + + ///Get a friendly full signature string name for a method + public static string SignatureName(this MethodBase method) { + string sig = null; + if ( _methodSignatures.TryGetValue(method, out sig) ) { + return sig; + } + + var specialType = MethodType.Normal; + var methodName = method.FriendlyName(out specialType); + var parameters = method.GetParameters(); + if ( method is ConstructorInfo ) { + sig = string.Format("new {0} (", method.DeclaringType.FriendlyName()); + } else { + sig = string.Format("{0}{1} (", method.IsStatic && specialType != MethodType.Operator ? "static " : "", methodName); + } + for ( var i = 0; i < parameters.Length; i++ ) { + var p = parameters[i]; + if ( p.IsParams(parameters) ) { + sig += "params "; + } + sig += ( p.ParameterType.IsByRef ? ( p.IsOut ? "out " : "ref " ) : "" ) + p.ParameterType.FriendlyName() + ( i < parameters.Length - 1 ? ", " : "" ); + } + if ( method is MethodInfo ) { + sig += ") : " + ( method as MethodInfo ).ReturnType.FriendlyName(); + } else { + sig += ")"; + } + return _methodSignatures[method] = sig; + } + + ///for 1 arg only + public static string FriendlyTypeName(string fullName) { + if ( fullName.Contains("`1") ) { + var argName = fullName.GetStringWithinInner('[', ','); + var baseName = fullName.GetStringWithinInner('.', '`'); + return string.Format("{0}({1})", baseName, argName); + } + if ( fullName.Contains('.') ) { + var idx = fullName.LastIndexOf('.') + 1; + return fullName.Substring(idx, fullName.Length - idx); + } + return fullName; + } + + ///---------------------------------------------------------------------------------------------- + + public static Type RTReflectedOrDeclaredType(this MemberInfo member) { + return member.ReflectedType != null ? member.ReflectedType : member.DeclaringType; + } + + public static bool RTIsAssignableFrom(this Type type, Type other) { + return type.IsAssignableFrom(other); + } + + public static bool RTIsAssignableTo(this Type type, Type other) { + return other.RTIsAssignableFrom(type); + } + + public static bool RTIsAbstract(this Type type) { + return type.IsAbstract; + } + + public static bool RTIsValueType(this Type type) { + return type.IsValueType; + } + + public static bool RTIsArray(this Type type) { + return type.IsArray; + } + + public static bool RTIsInterface(this Type type) { + return type.IsInterface; + } + + public static bool RTIsSubclassOf(this Type type, Type other) { + return type.IsSubclassOf(other); + } + + public static bool RTIsGenericParameter(this Type type) { + return type.IsGenericParameter; + } + + public static bool RTIsGenericType(this Type type) { + return type.IsGenericType; + } + + public static MethodInfo RTGetGetMethod(this PropertyInfo prop) { + return prop.GetGetMethod(); + } + + public static MethodInfo RTGetSetMethod(this PropertyInfo prop) { + return prop.GetSetMethod(); + } + + public static MethodInfo RTGetDelegateMethodInfo(this Delegate del) { + return del.Method; + } + + public static Type RTMakeGenericType(this Type type, params Type[] typeArgs) { + return type.MakeGenericType(typeArgs); + } + + public static Type[] RTGetEmptyTypes() { + return Type.EmptyTypes; + } + + public static Type RTGetElementType(this Type type) { + if ( type == null ) return null; + return type.GetElementType(); + } + + public static bool RTIsByRef(this Type type) { + if ( type == null ) return false; + return type.IsByRef; + } + + ///---------------------------------------------------------------------------------------------- + + public static Type[] RTGetGenericArguments(this Type type) { + Type[] result = null; + if ( _genericArgsTypeCache.TryGetValue(type, out result) ) { + return result; + } + return _genericArgsTypeCache[type] = result = type.GetGenericArguments(); + } + + public static Type[] RTGetGenericArguments(this MethodInfo method) { + Type[] result = null; + if ( _genericArgsMathodCache.TryGetValue(method, out result) ) { + return result; + } + return _genericArgsMathodCache[method] = result = method.GetGenericArguments(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Create object of type + public static object CreateObject(this Type type) { + if ( type == null ) return null; + return Activator.CreateInstance(type); + } + + ///Create uninitialized object of type + public static object CreateObjectUninitialized(this Type type) { + if ( type == null ) return null; + return FormatterServices.GetUninitializedObject(type); + } + + ///---------------------------------------------------------------------------------------------- + + public static ConstructorInfo RTGetDefaultConstructor(this Type type) { + var ctors = type.RTGetConstructors(); + for ( var i = 0; i < ctors.Length; i++ ) { + if ( ctors[i].GetParameters().Length == 0 ) { + return ctors[i]; + } + } + return null; + } + + public static ConstructorInfo RTGetConstructor(this Type type, Type[] paramTypes) { + var ctors = type.RTGetConstructors(); + for ( var i = 0; i < ctors.Length; i++ ) { + var ctor = ctors[i]; + var parameters = ctor.GetParameters(); + if ( parameters.Length != paramTypes.Length ) { + continue; + } + var sequenceEquals = true; + for ( var j = 0; j < parameters.Length; j++ ) { + if ( parameters[j].ParameterType != paramTypes[j] ) { + sequenceEquals = false; + break; + } + } + if ( sequenceEquals ) { + return ctor; + } + } + return null; + } + + ///---------------------------------------------------------------------------------------------- + + //Utility used bellow + private static bool MemberResolvedFromDeserializeAttribute(MemberInfo member, string targetName) { + var att = member.RTGetAttribute(true); + return att != null && att.previousTypeFullName == targetName; + } + + public static MethodInfo RTGetMethod(this Type type, string name) { + var methods = type.RTGetMethods(); + for ( var i = 0; i < methods.Length; i++ ) { + var m = methods[i]; + if ( m.Name == name || MemberResolvedFromDeserializeAttribute(m, name) ) { + return m; + } + } + Logger.LogError(string.Format("Method with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Method Request"); + return null; + } + + public static MethodInfo RTGetMethod(this Type type, string name, Type[] paramTypes, Type returnType = null, Type[] genericArgumentTypes = null) { + var methods = type.RTGetMethods(); + for ( var i = 0; i < methods.Length; i++ ) { + var m = methods[i]; + + if ( m.Name == name || MemberResolvedFromDeserializeAttribute(m, name) ) { + + if ( genericArgumentTypes != null && !m.IsGenericMethod ) { + continue; + } + + var parameters = m.GetParameters(); + if ( parameters.Length != paramTypes.Length ) { + continue; + } + + if ( genericArgumentTypes != null ) { + m = m.MakeGenericMethod(genericArgumentTypes); + parameters = m.GetParameters(); + } + + if ( returnType != null && m.ReturnType != returnType ) { + continue; + } + + var sequenceEquals = true; + for ( var j = 0; j < parameters.Length; j++ ) { + if ( parameters[j].ParameterType != paramTypes[j] ) { + sequenceEquals = false; + break; + } + } + if ( sequenceEquals ) { + return m; + } + } + } + Logger.LogError(string.Format("Method with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Method Request"); + return null; + } + + public static FieldInfo RTGetField(this Type type, string name, bool includePrivateBase = false) { + var current = type; + while ( current != null ) { + + var fields = current.RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var f = fields[i]; + if ( f.Name == name || MemberResolvedFromDeserializeAttribute(f, name) ) { + return f; + } + } + + if ( !includePrivateBase ) { + break; + } + + current = current.BaseType; + } + + Logger.LogError(string.Format("Field with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Field Request"); + return null; + } + + public static PropertyInfo RTGetProperty(this Type type, string name) { + var props = type.RTGetProperties(); + for ( var i = 0; i < props.Length; i++ ) { + var p = props[i]; + if ( p.Name == name || MemberResolvedFromDeserializeAttribute(p, name) ) { + return p; + } + } + Logger.LogError(string.Format("Property with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Property Request"); + return null; + } + + ///returns either field or property member info + public static MemberInfo RTGetFieldOrProp(this Type type, string name) { + var fields = type.RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var f = fields[i]; + if ( f.Name == name || MemberResolvedFromDeserializeAttribute(f, name) ) { + return f; + } + } + var props = type.RTGetProperties(); + for ( var i = 0; i < props.Length; i++ ) { + var p = props[i]; + if ( p.Name == name || MemberResolvedFromDeserializeAttribute(p, name) ) { + return p; + } + } + Logger.LogError(string.Format("Field Or Property with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Field/Property Request"); + return null; + } + + public static EventInfo RTGetEvent(this Type type, string name) { + var events = type.RTGetEvents(); + for ( var i = 0; i < events.Length; i++ ) { + var e = events[i]; + if ( e.Name == name || MemberResolvedFromDeserializeAttribute(e, name) ) { + return e; + } + } + Logger.LogError(string.Format("Event with name '{0}' on type '{1}', could not be resolved.", name, type.FriendlyName()), "Event Request"); + return null; + } + + ///return field or property value + public static object RTGetFieldOrPropValue(this MemberInfo member, object instance, int index = -1) { + if ( member is FieldInfo ) { return ( member as FieldInfo ).GetValue(instance); } + if ( member is PropertyInfo ) { return ( member as PropertyInfo ).GetValue(instance, index == -1 ? null : SingleTempArgsArray(index)); } + return null; + } + + //set field or property value + public static void RTSetFieldOrPropValue(this MemberInfo member, object instance, object value, int index = -1) { + if ( member is FieldInfo ) { ( member as FieldInfo ).SetValue(instance, value); } + if ( member is PropertyInfo ) { ( member as PropertyInfo ).SetValue(instance, value, index == -1 ? null : SingleTempArgsArray(index)); } + } + + ///---------------------------------------------------------------------------------------------- + + public static ConstructorInfo[] RTGetConstructors(this Type type) { + ConstructorInfo[] constructors; + if ( !_typeConstructors.TryGetValue(type, out constructors) ) { + constructors = type.GetConstructors(FLAGS_ALL); + _typeConstructors[type] = constructors; + } + + return constructors; + } + + public static MethodInfo[] RTGetMethods(this Type type) { + MethodInfo[] methods; + if ( !_typeMethods.TryGetValue(type, out methods) ) { + methods = type.GetMethods(FLAGS_ALL); + _typeMethods[type] = methods; + } + + return methods; + } + + public static FieldInfo[] RTGetFields(this Type type) { + FieldInfo[] fields; + if ( !_typeFields.TryGetValue(type, out fields) ) { + fields = type.GetFields(FLAGS_ALL); + _typeFields[type] = fields; + } + + return fields; + } + + public static PropertyInfo[] RTGetProperties(this Type type) { + PropertyInfo[] properties; + if ( !_typeProperties.TryGetValue(type, out properties) ) { + properties = type.GetProperties(FLAGS_ALL); + _typeProperties[type] = properties; + } + + return properties; + } + + public static EventInfo[] RTGetEvents(this Type type) { + EventInfo[] events; + if ( !_typeEvents.TryGetValue(type, out events) ) { + events = type.GetEvents(FLAGS_ALL); + _typeEvents[type] = events; + } + + return events; + } + + ///---------------------------------------------------------------------------------------------- + + // ///Get all attributes from type including inherited + // public static object[] RTGetAllAttributes(this Type type) { + // object[] attributes; + // if ( !_typeAttributes.TryGetValue(type, out attributes) ) { + // //put in try catch clause to avoid problems with some unity types + // try { attributes = type.GetCustomAttributes(true); } + // catch { /*...*/ } + // finally { _typeAttributes[type] = attributes; } + // } + // return attributes; + // } + + ///Is attribute defined? + public static bool RTIsDefined(this Type type, bool inherited) where T : Attribute { return type.RTIsDefined(typeof(T), inherited); } + public static bool RTIsDefined(this Type type, Type attributeType, bool inherited) { + return type.IsDefined(attributeType, inherited); + // return inherited ? type.RTGetAttribute(attributeType, inherited) != null : type.IsDefined(attributeType, false); + } + + ///Get attribute from type of type T + public static T RTGetAttribute(this Type type, bool inherited) where T : Attribute { return (T)type.RTGetAttribute(typeof(T), inherited); } + public static Attribute RTGetAttribute(this Type type, Type attributeType, bool inherited) { + return type.GetCustomAttribute(attributeType, inherited); + // object[] attributes = RTGetAllAttributes(type); + // if ( attributes != null ) { + // for ( var i = 0; i < attributes.Length; i++ ) { + // var att = (Attribute)attributes[i]; + // var attType = att.GetType(); + // if ( attType.RTIsAssignableTo(attributeType) ) { + // if ( inherited || type.IsDefined(attType, false) ) { + // return att; + // } + // } + // } + // } + // return null; + } + + ///------------------------------------------ + + ///Get all attributes from member including inherited + public static object[] RTGetAllAttributes(this MemberInfo member) { + object[] attributes; + if ( !_memberAttributes.TryGetValue(member, out attributes) ) { + attributes = member.GetCustomAttributes(true); + _memberAttributes[member] = attributes; + } + return attributes; + } + + ///Is attribute defined? + public static bool RTIsDefined(this MemberInfo member, bool inherited) where T : Attribute { return member.RTIsDefined(typeof(T), inherited); } + public static bool RTIsDefined(this MemberInfo member, Type attributeType, bool inherited) { + return member.IsDefined(attributeType, inherited); + // return inherited ? member.RTGetAttribute(attributeType, inherited) != null : member.IsDefined(attributeType, false); + } + + ///Get attribute from member of type T + public static T RTGetAttribute(this MemberInfo member, bool inherited) where T : Attribute { return (T)member.RTGetAttribute(typeof(T), inherited); } + public static Attribute RTGetAttribute(this MemberInfo member, Type attributeType, bool inherited) { + return member.GetCustomAttribute(attributeType, inherited); + // object[] attributes = RTGetAllAttributes(member); + // for ( var i = 0; i < attributes.Length; i++ ) { + // var att = (Attribute)attributes[i]; + // var attType = att.GetType(); + // if ( attType.RTIsAssignableTo(attributeType) ) { + // if ( inherited || member.IsDefined(attType, false) ) { + // return att; + // } + // } + // } + // return null; + } + + ///Get all attributes of type T recursively up the type hierarchy + public static IEnumerable RTGetAttributesRecursive(this Type type) where T : Attribute { + var current = type; + while ( current != null ) { + var att = current.RTGetAttribute(false); + if ( att != null ) { + yield return att; + } + current = current.BaseType; + } + } + + ///---------------------------------------------------------------------------------------------- + + public static ParameterInfo[] RTGetDelegateTypeParameters(this Type delegateType) { + if ( delegateType == null || !delegateType.RTIsSubclassOf(typeof(Delegate)) ) { + return new ParameterInfo[0]; + } + var invokeMethod = delegateType.RTGetMethod("Invoke"); + return invokeMethod.GetParameters(); + } + + ///Create delegate + public static T RTCreateDelegate(this MethodInfo method, object instance) where T : Delegate { + return (T)(object)method.RTCreateDelegate(typeof(T), instance); + } + + ///Create delegate + public static Delegate RTCreateDelegate(this MethodInfo method, Type type, object instance) { + if ( instance != null ) { + var instanceType = instance.GetType(); + if ( method.DeclaringType != instanceType ) { + method = instanceType.RTGetMethod(method.Name, method.GetParameters().Select(p => p.ParameterType).ToArray()); + } + } + return Delegate.CreateDelegate(type, instance, method); + } + + ///Convert delegate + public static Delegate ConvertDelegate(Delegate originalDelegate, Type targetDelegateType) { + return Delegate.CreateDelegate(targetDelegateType, originalDelegate.Target, originalDelegate.Method); + } + + ///---------------------------------------------------------------------------------------------- + + ///Is the field read only? + public static bool IsReadOnly(this FieldInfo field) { + return field.IsInitOnly || field.IsLiteral; + } + + ///Is the field a Constant? + public static bool IsConstant(this FieldInfo field) { + return field.IsReadOnly() && field.IsStatic; + } + + ///Quicky to get if an event info is static. + public static bool IsStatic(this EventInfo info) { + var m = info.GetAddMethod(); + return m != null ? m.IsStatic : false; + } + + ///Quicky to get if a property info is static. + public static bool IsStatic(this PropertyInfo info) { + var m = info.GetGetMethod(); + return m != null ? m.IsStatic : false; + } + + ///Is the parameter provided a params array? + public static bool IsParams(this ParameterInfo parameter, ParameterInfo[] parameters) { + return parameter.Position == parameters.Length - 1 && parameter.IsDefined(typeof(ParamArrayAttribute), false); + } + + ///Utility to determine obsolete members quicker. Also handles property accessor methods. + public static bool IsObsolete(this MemberInfo member, bool inherited = true) { + + bool result; + if ( _obsoleteCache.TryGetValue(member, out result) ) { + return result; + } + + var resultMember = member; + if ( member is MethodInfo ) { + var m = (MethodInfo)member; + if ( m.IsPropertyAccessor() ) { + resultMember = m.GetAccessorProperty(); + } + } + var isObsolete = resultMember.RTIsDefined(inherited); + return _obsoleteCache[member] = isObsolete; + } + + ///---------------------------------------------------------------------------------------------- + + ///BaseDefinition for PropertyInfos. + public static PropertyInfo GetBaseDefinition(this PropertyInfo propertyInfo) { + var method = propertyInfo.GetAccessors(true).FirstOrDefault(); + if ( method == null ) { + return null; + } + + var baseMethod = method.GetBaseDefinition(); + if ( baseMethod == method ) { + return propertyInfo; + } + + var arguments = propertyInfo.GetIndexParameters().Select(p => p.ParameterType).ToArray(); + return baseMethod.DeclaringType.GetProperty(propertyInfo.Name, FLAGS_ALL, null, propertyInfo.PropertyType, arguments, null); + } + + ///BaseDefinition for FieldInfo. Not exactly correct but here for consistency. + public static FieldInfo GetBaseDefinition(this FieldInfo fieldInfo) { + return fieldInfo.DeclaringType.RTGetField(fieldInfo.Name); + } + + ///Get a list of methods that extend the provided type + public static MethodInfo[] GetExtensionMethods(this Type targetType) { + MethodInfo[] methods = null; + if ( _typeExtensions.TryGetValue(targetType, out methods) ) { + return methods; + } + var result = new List(); + var allTypes = GetAllTypes(false); + for ( var i = 0; i < allTypes.Length; i++ ) { + var t = allTypes[i]; + if ( !t.IsSealed || t.IsGenericType || !t.RTIsDefined(true) ) { + continue; + } + + var typeMethods = t.RTGetMethods(); + for ( var j = 0; j < typeMethods.Length; j++ ) { + var m = typeMethods[j]; + if ( m.IsExtensionMethod() && m.GetParameters()[0].ParameterType.RTIsAssignableFrom(targetType) ) { + result.Add(m); + } + } + } + + return _typeExtensions[targetType] = result.ToArray(); + } + + ///Helper to determine if method is extension quicker. + public static bool IsExtensionMethod(this MethodInfo method) { + return method.RTIsDefined(true); + } + + ///Returns if method is Get or Set method of a property. + public static bool IsPropertyAccessor(this MethodInfo method) { + return method.GetMethodSpecialType() == MethodType.PropertyAccessor; + } + + ///Returns whether the property is an indexer. + public static bool IsIndexerProperty(this PropertyInfo property) { + return property.GetIndexParameters().Length != 0; + } + + ///Returns if the property is auto. + public static bool IsAutoProperty(this PropertyInfo property) { + if ( !property.CanRead || !property.CanWrite ) { return false; } + var backingFieldName = "<" + property.Name + ">k__BackingField"; + return property.DeclaringType.RTGetField(backingFieldName) != null; + } + + ///Returns the equivalent property of a method that represents an accessor method. + public static PropertyInfo GetAccessorProperty(this MethodInfo method) { + if ( method.IsPropertyAccessor() ) { + return method.RTReflectedOrDeclaredType().RTGetProperty(method.Name.Substring(4)); + } + return null; + } + + ///Is type a supported enumerable collection? + public static bool IsEnumerableCollection(this Type type) { + if ( type == null ) { return false; } + return typeof(IEnumerable).RTIsAssignableFrom(type) && ( type.RTIsGenericType() || type.RTIsArray() ); + } + + ///Returns the element type of an enumerable type. + public static Type GetEnumerableElementType(this Type type) { + if ( type == null ) { return null; } + + if ( !typeof(IEnumerable).RTIsAssignableFrom(type) ) { + return null; + } + + if ( type.HasElementType || type.RTIsArray() ) { + return type.GetElementType(); + } + + if ( type.RTIsGenericType() ) { + //These are not exactly correct, but serve the purpose of usage. + var args = type.RTGetGenericArguments(); + if ( args.Length == 1 ) { + return args[0]; + } + //This is special. We only support Dictionary and always consider 1st arg to be string. + if ( typeof(IDictionary).RTIsAssignableFrom(type) && args.Length == 2 ) { + return args[1]; + } + } + /* + var interfaces = type.GetInterfaces(); + for (var i = 0; i < interfaces.Length; i++){ + var iface = interfaces[i]; + if (!iface.RTIsGenericType()){ + continue; + } + var genType = iface.GetGenericTypeDefinition(); + if (genType != typeof(IEnumerable<>)){ + continue; + } + + return iface.RTGetGenericArguments()[0]; + } + */ + return null; + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns the first generic argument type if type is generic and has only a single (1) generic argument. Otherwise returns null. + public static Type GetSingleGenericArgument(this Type type) { + if ( type.RTIsGenericType() ) { + var args = type.RTGetGenericArguments(); + return args.Length == 1 ? args[0] : null; + } + return null; + } + + ///Returns the first argument parameter constraint. If no constraint, typeof(object) is returned. + public static Type GetFirstGenericParameterConstraintType(this Type type) { + if ( type == null || !type.RTIsGenericType() ) { return null; } + type = type.GetGenericTypeDefinition(); + var arg1 = type.RTGetGenericArguments().First(); + var c1 = arg1.GetGenericParameterConstraints().FirstOrDefault(); + return c1 != null ? c1 : typeof(object); + } + + ///Returns the first argument parameter constraint. If no constraint, typeof(object) is returned. + public static Type GetFirstGenericParameterConstraintType(this MethodInfo method) { + if ( method == null || !method.IsGenericMethod ) { return null; } + method = method.GetGenericMethodDefinition(); + var arg1 = method.RTGetGenericArguments().First(); + var c1 = arg1.GetGenericParameterConstraints().FirstOrDefault(); + return c1 != null ? c1 : typeof(object); + } + + ///---------------------------------------------------------------------------------------------- + + ///Return true if def can be made generic with argType and outs the resulting generic type made + public static bool TryMakeGeneric(this Type def, Type argType, out Type result) { + result = null; + if ( def == null || argType == null || !def.IsGenericType ) { return false; } + try { + result = def.GetGenericTypeDefinition().MakeGenericType(argType); + return true; + } + catch { return false; } + } + + ///Return true if def can be made generic with argType and outs the resulting generic method made + public static bool TryMakeGeneric(this MethodInfo def, Type argType, out MethodInfo result) { + result = null; + if ( def == null || argType == null || !def.IsGenericMethod ) { return false; } + try { + result = def.GetGenericMethodDefinition().MakeGenericMethod(argType); + return true; + } + catch { return false; } + } + + ///Resize array of arbitrary element type. Creates a new instance. + public static System.Array Resize(this System.Array array, int newSize) { + if ( array == null ) { return null; } + var oldSize = array.Length; + var elementType = array.GetType().GetElementType(); + var newArray = System.Array.CreateInstance(elementType, newSize); + var preserveLength = System.Math.Min(oldSize, newSize); + if ( preserveLength > 0 ) { + System.Array.Copy(array, newArray, preserveLength); + } + return newArray; + } + + ///---------------------------------------------------------------------------------------------- + + ///Check if conversion exists from -> to type and outs an expression able to do so. + public static bool TryConvert(Type fromType, Type toType, out UnaryExpression exp) { + try { + // Throws an exception if there is no conversion fromType -> toType + exp = Expression.Convert(Expression.Parameter(fromType, null), toType); + return true; + } + catch { + exp = null; + return false; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Dig instance fields provided predicate and callbacks on found object value. IList and IDictionary are handled (IDictionary.Values only). Recursion is *NOT* checked for performance reasons, so be careful. + public static void DigFields(object root, Predicate move, Action push, Action pop) { + + if ( root == null ) { return; } + + var type = root.GetType(); + if ( type.IsPrimitive || type == typeof(string) ) { + return; + } + + if ( push != null ) { push(root); } + + var fields = type.RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var field = fields[i]; + if ( !field.IsStatic && !field.FieldType.IsPrimitive && field.FieldType != typeof(string) && move(field) ) { + var value = field.GetValue(root); + if ( value == null ) { + continue; + } + if ( value is IList ) { + foreach ( var item in (IList)value ) { + DigFields(item, move, push, pop); + } + continue; + } + if ( value is IDictionary ) { + foreach ( var item in ( (IDictionary)value ).Values ) { + DigFields(item, move, push, pop); + } + continue; + } + DigFields(value, move, push, pop); + } + } + + if ( pop != null ) { pop(root); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Creates and returns an open instance getter for field. + public static Func GetFieldGetter(FieldInfo info) { +#if !NET_STANDARD_2_0 && (UNITY_EDITOR || (!ENABLE_IL2CPP && (UNITY_STANDALONE || UNITY_ANDROID || UNITY_WSA))) + var name = string.Format("__get_field_{0}_", info.Name); + DynamicMethod fieldGetter = new DynamicMethod(name, typeof(TResult), new Type[] { typeof(T) }, typeof(T)); + ILGenerator il = fieldGetter.GetILGenerator(); + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Ldfld, info); + il.Emit(OpCodes.Ret); + return (Func)fieldGetter.CreateDelegate(typeof(Func)); +#else + return (T instance) => { return (TResult)info.GetValue(instance); }; +#endif + } + + ///Creates and returns an open instance setter for field. + public static Action GetFieldSetter(FieldInfo info) { +#if !NET_STANDARD_2_0 && (UNITY_EDITOR || (!ENABLE_IL2CPP && (UNITY_STANDALONE || UNITY_ANDROID || UNITY_WSA))) + var name = string.Format("__set_field_{0}_", info.Name); + DynamicMethod m = new DynamicMethod(name, typeof(void), new Type[] { typeof(T), typeof(TValue) }, typeof(T)); + ILGenerator il = m.GetILGenerator(); + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Stfld, info); + il.Emit(OpCodes.Ret); + return (Action)m.CreateDelegate(typeof(Action)); +#else + return (T instance, TValue value) => { info.SetValue(instance, value); }; +#endif + } + + ///---------------------------------------------------------------------------------------------- + // ///Can type be made generic by using target type as argument? + // public static bool CanBeMadeGenericWith(this Type def, Type type) { + // if ( def == null || !def.RTIsGenericType() ) { return false; } + // return type.IsAllowedByGenericArgument(def.GetGenericTypeDefinition().RTGetGenericArguments().FirstOrDefault()); + // } + + // ///Can method be made generic by using target type as argument? + // public static bool CanBeMadeGenericWith(this MethodInfo def, Type type) { + // if ( def == null || !def.IsGenericMethod ) { return false; } + // return type.IsAllowedByGenericArgument(def.GetGenericMethodDefinition().RTGetGenericArguments().FirstOrDefault()); + // } + + // ///Is type allowed to be assigned to target generic argument based on that argument's constaints? + // public static bool IsAllowedByGenericArgument(this Type type, Type genericArgument) { + + // if ( type == null || genericArgument == null ) { return false; } + + // var constraints = genericArgument.GetGenericParameterConstraints(); + // var attributes = genericArgument.GenericParameterAttributes; + + // var result = true; + // for ( var i = 0; i < constraints.Length; i++ ) { + // var constraint = constraints[i]; + // if ( constraint == typeof(ValueType) ) continue; + // if ( !result ) break; + // result &= constraint.RTIsAssignableFrom(type); + // } + + // if ( result ) { + // if ( ( attributes & GenericParameterAttributes.DefaultConstructorConstraint ) == + // GenericParameterAttributes.DefaultConstructorConstraint && + // ( attributes & GenericParameterAttributes.NotNullableValueTypeConstraint ) != + // GenericParameterAttributes.NotNullableValueTypeConstraint ) { + // var constructor = type.RTGetConstructors().FirstOrDefault(info => info.IsPublic && info.GetParameters().Length == 0); + // if ( constructor == null ) result = false; + // } + // } + + // if ( result ) { + // if ( ( attributes & GenericParameterAttributes.ReferenceTypeConstraint ) == + // GenericParameterAttributes.ReferenceTypeConstraint ) { + // if ( type.RTIsValueType() ) result = false; + // } + // } + + // if ( result ) { + // if ( ( attributes & GenericParameterAttributes.NotNullableValueTypeConstraint ) == + // GenericParameterAttributes.NotNullableValueTypeConstraint ) { + // if ( !type.RTIsValueType() ) result = false; + // } + // } + // return result; + // } + + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs.meta new file mode 100644 index 0000000..b85b144 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/ReflectionTools.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b784f41bdb7345499543912922c873d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization.meta new file mode 100644 index 0000000..5a6d9ac --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 98e4103193f629f4188bc1831efae51b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs new file mode 100644 index 0000000..3426d6d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs @@ -0,0 +1,12 @@ +using System; + +namespace ParadoxNotion.Serialization +{ + public class DeserializeFromAttribute : Attribute + { + readonly public string previousTypeFullName; + public DeserializeFromAttribute(string previousTypeFullName) { + this.previousTypeFullName = previousTypeFullName; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs.meta new file mode 100644 index 0000000..1e7641d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/DeserializeFromAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 08b3b1be3dd9c7b46b83e8993a8d969e +timeCreated: 1438645389 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer.meta new file mode 100644 index 0000000..32a0696 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4c9c2848912bd304a9e017cc2c70823c +folderAsset: yes +timeCreated: 1458918182 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters.meta new file mode 100644 index 0000000..7f64d57 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1c3453edd5a095d4a8d2ad6271ace429 +folderAsset: yes +timeCreated: 1458897573 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity.meta new file mode 100644 index 0000000..36e79c0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: edb4a1e97c2095c49a690e92967ac921 +folderAsset: yes +timeCreated: 1458897573 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs new file mode 100644 index 0000000..5876fa5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs @@ -0,0 +1,43 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class AnimationCurve_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(AnimationCurve model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "keys", model.keys); + result += SerializeMember(serialized, null, "preWrapMode", model.preWrapMode); + result += SerializeMember(serialized, null, "postWrapMode", model.postWrapMode); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref AnimationCurve model) { + var result = fsResult.Success; + + var t0 = model.keys; + result += DeserializeMember(data, null, "keys", out t0); + model.keys = t0; + + var t1 = model.preWrapMode; + result += DeserializeMember(data, null, "preWrapMode", out t1); + model.preWrapMode = t1; + + var t2 = model.postWrapMode; + result += DeserializeMember(data, null, "postWrapMode", out t2); + model.postWrapMode = t2; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new AnimationCurve(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs.meta new file mode 100644 index 0000000..cd8cbce --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/AnimationCurve_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 884587fd81d5241449463b0aa2772803 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs new file mode 100644 index 0000000..18d5cab --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs @@ -0,0 +1,38 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Bounds_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Bounds model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "center", model.center); + result += SerializeMember(serialized, null, "size", model.size); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Bounds model) { + var result = fsResult.Success; + + var t0 = model.center; + result += DeserializeMember(data, null, "center", out t0); + model.center = t0; + + var t1 = model.size; + result += DeserializeMember(data, null, "size", out t1); + model.size = t1; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Bounds(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs.meta new file mode 100644 index 0000000..98a250e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Bounds_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a89e61419fe2a174cbc04e2fdfb7378c +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs new file mode 100644 index 0000000..419e6b4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs @@ -0,0 +1,38 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class GUIStyleState_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(GUIStyleState model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "background", model.background); + result += SerializeMember(serialized, null, "textColor", model.textColor); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref GUIStyleState model) { + var result = fsResult.Success; + + var t0 = model.background; + result += DeserializeMember(data, null, "background", out t0); + model.background = t0; + + var t2 = model.textColor; + result += DeserializeMember(data, null, "textColor", out t2); + model.textColor = t2; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new GUIStyleState(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs.meta new file mode 100644 index 0000000..73010e2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyleState_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 323d7ae8ade7f9140adadd06c728dc76 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs new file mode 100644 index 0000000..aa87201 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs @@ -0,0 +1,158 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class GUIStyle_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(GUIStyle model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "active", model.active); + result += SerializeMember(serialized, null, "alignment", model.alignment); + result += SerializeMember(serialized, null, "border", model.border); + result += SerializeMember(serialized, null, "clipping", model.clipping); + result += SerializeMember(serialized, null, "contentOffset", model.contentOffset); + result += SerializeMember(serialized, null, "fixedHeight", model.fixedHeight); + result += SerializeMember(serialized, null, "fixedWidth", model.fixedWidth); + result += SerializeMember(serialized, null, "focused", model.focused); + result += SerializeMember(serialized, null, "font", model.font); + result += SerializeMember(serialized, null, "fontSize", model.fontSize); + result += SerializeMember(serialized, null, "fontStyle", model.fontStyle); + result += SerializeMember(serialized, null, "hover", model.hover); + result += SerializeMember(serialized, null, "imagePosition", model.imagePosition); + result += SerializeMember(serialized, null, "margin", model.margin); + result += SerializeMember(serialized, null, "name", model.name); + result += SerializeMember(serialized, null, "normal", model.normal); + result += SerializeMember(serialized, null, "onActive", model.onActive); + result += SerializeMember(serialized, null, "onFocused", model.onFocused); + result += SerializeMember(serialized, null, "onHover", model.onHover); + result += SerializeMember(serialized, null, "onNormal", model.onNormal); + result += SerializeMember(serialized, null, "overflow", model.overflow); + result += SerializeMember(serialized, null, "padding", model.padding); + result += SerializeMember(serialized, null, "richText", model.richText); + result += SerializeMember(serialized, null, "stretchHeight", model.stretchHeight); + result += SerializeMember(serialized, null, "stretchWidth", model.stretchWidth); + result += SerializeMember(serialized, null, "wordWrap", model.wordWrap); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref GUIStyle model) { + var result = fsResult.Success; + + var t0 = model.active; + result += DeserializeMember(data, null, "active", out t0); + model.active = t0; + + var t2 = model.alignment; + result += DeserializeMember(data, null, "alignment", out t2); + model.alignment = t2; + + var t3 = model.border; + result += DeserializeMember(data, null, "border", out t3); + model.border = t3; + + var t4 = model.clipping; + result += DeserializeMember(data, null, "clipping", out t4); + model.clipping = t4; + + var t5 = model.contentOffset; + result += DeserializeMember(data, null, "contentOffset", out t5); + model.contentOffset = t5; + + var t6 = model.fixedHeight; + result += DeserializeMember(data, null, "fixedHeight", out t6); + model.fixedHeight = t6; + + var t7 = model.fixedWidth; + result += DeserializeMember(data, null, "fixedWidth", out t7); + model.fixedWidth = t7; + + var t8 = model.focused; + result += DeserializeMember(data, null, "focused", out t8); + model.focused = t8; + + var t9 = model.font; + result += DeserializeMember(data, null, "font", out t9); + model.font = t9; + + var t10 = model.fontSize; + result += DeserializeMember(data, null, "fontSize", out t10); + model.fontSize = t10; + + var t11 = model.fontStyle; + result += DeserializeMember(data, null, "fontStyle", out t11); + model.fontStyle = t11; + + var t12 = model.hover; + result += DeserializeMember(data, null, "hover", out t12); + model.hover = t12; + + var t13 = model.imagePosition; + result += DeserializeMember(data, null, "imagePosition", out t13); + model.imagePosition = t13; + + var t16 = model.margin; + result += DeserializeMember(data, null, "margin", out t16); + model.margin = t16; + + var t17 = model.name; + result += DeserializeMember(data, null, "name", out t17); + model.name = t17; + + var t18 = model.normal; + result += DeserializeMember(data, null, "normal", out t18); + model.normal = t18; + + var t19 = model.onActive; + result += DeserializeMember(data, null, "onActive", out t19); + model.onActive = t19; + + var t20 = model.onFocused; + result += DeserializeMember(data, null, "onFocused", out t20); + model.onFocused = t20; + + var t21 = model.onHover; + result += DeserializeMember(data, null, "onHover", out t21); + model.onHover = t21; + + var t22 = model.onNormal; + result += DeserializeMember(data, null, "onNormal", out t22); + model.onNormal = t22; + + var t23 = model.overflow; + result += DeserializeMember(data, null, "overflow", out t23); + model.overflow = t23; + + var t24 = model.padding; + result += DeserializeMember(data, null, "padding", out t24); + model.padding = t24; + + var t25 = model.richText; + result += DeserializeMember(data, null, "richText", out t25); + model.richText = t25; + + var t26 = model.stretchHeight; + result += DeserializeMember(data, null, "stretchHeight", out t26); + model.stretchHeight = t26; + + var t27 = model.stretchWidth; + result += DeserializeMember(data, null, "stretchWidth", out t27); + model.stretchWidth = t27; + + var t28 = model.wordWrap; + result += DeserializeMember(data, null, "wordWrap", out t28); + model.wordWrap = t28; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new GUIStyle(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs.meta new file mode 100644 index 0000000..43f3c71 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/GUIStyle_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 47dbcbf22e1d9234d95418fca447f2a8 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs new file mode 100644 index 0000000..ad5c801 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs @@ -0,0 +1,38 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Gradient_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Gradient model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "alphaKeys", model.alphaKeys); + result += SerializeMember(serialized, null, "colorKeys", model.colorKeys); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Gradient model) { + var result = fsResult.Success; + + var t0 = model.alphaKeys; + result += DeserializeMember(data, null, "alphaKeys", out t0); + model.alphaKeys = t0; + + var t1 = model.colorKeys; + result += DeserializeMember(data, null, "colorKeys", out t1); + model.colorKeys = t1; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Gradient(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs.meta new file mode 100644 index 0000000..fb6b458 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Gradient_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f2db0c1839217344db6beac8c2eded04 +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs new file mode 100644 index 0000000..0ff2807 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs @@ -0,0 +1,57 @@ +#pragma warning disable 612, 618 + +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Keyframe_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Keyframe model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "time", model.time); + result += SerializeMember(serialized, null, "value", model.value); + result += SerializeMember(serialized, null, "tangentMode", model.tangentMode); + result += SerializeMember(serialized, null, "inTangent", model.inTangent); + result += SerializeMember(serialized, null, "outTangent", model.outTangent); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Keyframe model) { + var result = fsResult.Success; + + var t0 = model.time; + result += DeserializeMember(data, null, "time", out t0); + model.time = t0; + + var t1 = model.value; + result += DeserializeMember(data, null, "value", out t1); + model.value = t1; + + var t2 = model.tangentMode; + result += DeserializeMember(data, null, "tangentMode", out t2); + model.tangentMode = t2; + + var t3 = model.inTangent; + result += DeserializeMember(data, null, "inTangent", out t3); + model.inTangent = t3; + + var t4 = model.outTangent; + result += DeserializeMember(data, null, "outTangent", out t4); + model.outTangent = t4; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Keyframe(); + } + } +} +#endif + +#pragma warning restore 612, 618 \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs.meta new file mode 100644 index 0000000..33ed696 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Keyframe_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8cc188d77995f2442a7e180f6788dd3a +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs new file mode 100644 index 0000000..3f7bc05 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs @@ -0,0 +1,33 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class LayerMask_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(LayerMask model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "value", model.value); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref LayerMask model) { + var result = fsResult.Success; + + var t0 = model.value; + result += DeserializeMember(data, null, "value", out t0); + model.value = t0; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new LayerMask(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs.meta new file mode 100644 index 0000000..2b2d1f2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/LayerMask_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 798703a1e8c6a394fa11ea20d551c34a +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs new file mode 100644 index 0000000..b6d70e6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs @@ -0,0 +1,48 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class RectOffset_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(RectOffset model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "bottom", model.bottom); + result += SerializeMember(serialized, null, "left", model.left); + result += SerializeMember(serialized, null, "right", model.right); + result += SerializeMember(serialized, null, "top", model.top); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref RectOffset model) { + var result = fsResult.Success; + + var t0 = model.bottom; + result += DeserializeMember(data, null, "bottom", out t0); + model.bottom = t0; + + var t2 = model.left; + result += DeserializeMember(data, null, "left", out t2); + model.left = t2; + + var t3 = model.right; + result += DeserializeMember(data, null, "right", out t3); + model.right = t3; + + var t4 = model.top; + result += DeserializeMember(data, null, "top", out t4); + model.top = t4; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new RectOffset(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs.meta new file mode 100644 index 0000000..b2d36bd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/RectOffset_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eec86a1441c2ed34a8921a1881e1a09d +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs new file mode 100644 index 0000000..8216613 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs @@ -0,0 +1,48 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Rect_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Rect model, Dictionary serialized) { + var result = fsResult.Success; + + result += SerializeMember(serialized, null, "xMin", model.xMin); + result += SerializeMember(serialized, null, "yMin", model.yMin); + result += SerializeMember(serialized, null, "xMax", model.xMax); + result += SerializeMember(serialized, null, "yMax", model.yMax); + + return result; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Rect model) { + var result = fsResult.Success; + + var t0 = model.xMin; + result += DeserializeMember(data, null, "xMin", out t0); + model.xMin = t0; + + var t1 = model.yMin; + result += DeserializeMember(data, null, "yMin", out t1); + model.yMin = t1; + + var t2 = model.xMax; + result += DeserializeMember(data, null, "xMax", out t2); + model.xMax = t2; + + var t3 = model.yMax; + result += DeserializeMember(data, null, "yMax", out t3); + model.yMax = t3; + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Rect(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs.meta new file mode 100644 index 0000000..dccadee --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Rect_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d8a097ac85e4ea40a93043962b9c75f +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs new file mode 100644 index 0000000..9a9bc16 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs @@ -0,0 +1,33 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Vector2Int_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Vector2Int model, Dictionary serialized) { + SerializeMember(serialized, null, "x", model.x); + SerializeMember(serialized, null, "y", model.y); + return fsResult.Success; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Vector2Int model) { + var t0 = model.x; + DeserializeMember(data, null, "x", out t0); + model.x = t0; + + var t1 = model.y; + DeserializeMember(data, null, "y", out t1); + model.y = t1; + + return fsResult.Success; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Vector2Int(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs.meta new file mode 100644 index 0000000..611349d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2Int_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be6032e4c16bac44d9f70aa66f3974c6 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs new file mode 100644 index 0000000..bb7404a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs @@ -0,0 +1,33 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Vector2_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Vector2 model, Dictionary serialized) { + SerializeMember(serialized, null, "x", model.x); + SerializeMember(serialized, null, "y", model.y); + return fsResult.Success; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Vector2 model) { + var t0 = model.x; + DeserializeMember(data, null, "x", out t0); + model.x = t0; + + var t1 = model.y; + DeserializeMember(data, null, "y", out t1); + model.y = t1; + + return fsResult.Success; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Vector2(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs.meta new file mode 100644 index 0000000..a77936e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector2_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a26911f65c1b5348b30660780642c5f +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs new file mode 100644 index 0000000..7294081 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs @@ -0,0 +1,38 @@ +#if !NO_UNITY +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters +{ + public class Vector3Int_DirectConverter : fsDirectConverter + { + protected override fsResult DoSerialize(Vector3Int model, Dictionary serialized) { + SerializeMember(serialized, null, "x", model.x); + SerializeMember(serialized, null, "y", model.y); + SerializeMember(serialized, null, "z", model.z); + return fsResult.Success; + } + + protected override fsResult DoDeserialize(Dictionary data, ref Vector3Int model) { + var t0 = model.x; + DeserializeMember(data, null, "x", out t0); + model.x = t0; + + var t1 = model.y; + DeserializeMember(data, null, "y", out t1); + model.y = t1; + + var t2 = model.z; + DeserializeMember(data, null, "z", out t2); + model.z = t2; + + return fsResult.Success; + } + + public override object CreateInstance(fsData data, Type storageType) { + return new Vector3Int(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs.meta new file mode 100644 index 0000000..0141e8f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/Unity/Vector3Int_DirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5568041b7ef3e4247bea3608589c2805 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs new file mode 100644 index 0000000..638c8a6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsArrayConverter : fsConverter + { + public override bool CanProcess(Type type) { + return type.IsArray; + } + + public override bool RequestCycleSupport(Type storageType) { + return false; + } + + public override bool RequestInheritanceSupport(Type storageType) { + return false; + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + // note: IList[index] is **significantly** faster than Array.Get, so make sure we use + // that instead. + + IList arr = (Array)instance; + Type elementType = storageType.GetElementType(); + + var result = fsResult.Success; + + serialized = fsData.CreateList(arr.Count); + var serializedList = serialized.AsList; + + for ( int i = 0; i < arr.Count; ++i ) { + object item = arr[i]; + + fsData serializedItem; + + var itemResult = Serializer.TrySerialize(elementType, item, out serializedItem); + result.AddMessages(itemResult); + if ( itemResult.Failed ) continue; + + serializedList.Add(serializedItem); + } + + return result; + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + var result = fsResult.Success; + + // Verify that we actually have an List + if ( ( result += CheckType(data, fsDataType.Array) ).Failed ) { + return result; + } + + Type elementType = storageType.GetElementType(); + + var serializedList = data.AsList; + var list = new ArrayList(serializedList.Count); + int existingCount = list.Count; + + for ( int i = 0; i < serializedList.Count; ++i ) { + var serializedItem = serializedList[i]; + object deserialized = null; + if ( i < existingCount ) deserialized = list[i]; + + var itemResult = Serializer.TryDeserialize(serializedItem, elementType, ref deserialized); + result.AddMessages(itemResult); + if ( itemResult.Failed ) continue; + + if ( i < existingCount ) list[i] = deserialized; + else list.Add(deserialized); + } + + instance = list.ToArray(elementType); + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return fsMetaType.Get(storageType).CreateInstance(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs.meta new file mode 100644 index 0000000..e90c613 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsArrayConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4fd95ce87e49ad9408a03e4e9c0121fe +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs new file mode 100644 index 0000000..2eb9b5e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + // While the generic IEnumerable converter can handle dictionaries, we process them separately here because + // we support a few more advanced use-cases with dictionaries, such as inline strings. Further, dictionary + // processing in general is a bit more advanced because a few of the collection implementations are buggy. + public class fsDictionaryConverter : fsConverter + { + public override bool CanProcess(Type type) { + return type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Dictionary<,>); + } + + public override object CreateInstance(fsData data, Type storageType) { + return fsMetaType.Get(storageType).CreateInstance(); + } + + public override fsResult TrySerialize(object instance_, out fsData serialized, Type storageType) { + serialized = fsData.Null; + var result = fsResult.Success; + var instance = (IDictionary)instance_; + + var args = instance.GetType().RTGetGenericArguments(); + var keyStorageType = args[0]; + var valueStorageType = args[1]; + + bool allStringKeys = true; + var serializedKeys = new List(instance.Count); + var serializedValues = new List(instance.Count); + + // No other way to iterate dictionaries and still have access to the key/value info + IDictionaryEnumerator enumerator = instance.GetEnumerator(); + + while ( enumerator.MoveNext() ) { + fsData keyData, valueData; + if ( ( result += Serializer.TrySerialize(keyStorageType, enumerator.Key, out keyData) ).Failed ) return result; + if ( ( result += Serializer.TrySerialize(valueStorageType, enumerator.Value, out valueData) ).Failed ) return result; + + serializedKeys.Add(keyData); + serializedValues.Add(valueData); + + allStringKeys &= keyData.IsString; + } + + if ( allStringKeys ) { + + serialized = fsData.CreateDictionary(); + var serializedDictionary = serialized.AsDictionary; + + for ( int i = 0; i < serializedKeys.Count; ++i ) { + fsData key = serializedKeys[i]; + fsData value = serializedValues[i]; + serializedDictionary[key.AsString] = value; + } + + } else { + + serialized = fsData.CreateList(serializedKeys.Count); + var serializedList = serialized.AsList; + + for ( int i = 0; i < serializedKeys.Count; ++i ) { + fsData key = serializedKeys[i]; + fsData value = serializedValues[i]; + + var container = new Dictionary(); + container["Key"] = key; + container["Value"] = value; + serializedList.Add(new fsData(container)); + } + } + + return result; + } + + public override fsResult TryDeserialize(fsData data, ref object instance_, Type storageType) { + var instance = (IDictionary)instance_; + var result = fsResult.Success; + + var args = instance.GetType().RTGetGenericArguments(); + var keyStorageType = args[0]; + var valueStorageType = args[1]; + + instance.Clear(); + + //(string, T) + if ( data.IsDictionary ) { + foreach ( var entry in data.AsDictionary ) { + if ( fsSerializer.IsReservedKeyword(entry.Key) ) { + continue; + } + + fsData keyData = new fsData(entry.Key); + fsData valueData = entry.Value; + object keyInstance = null; + object valueInstance = null; + + if ( ( result += Serializer.TryDeserialize(keyData, keyStorageType, ref keyInstance) ).Failed ) return result; + if ( ( result += Serializer.TryDeserialize(valueData, valueStorageType, ref valueInstance) ).Failed ) return result; + + instance.Add(keyInstance, valueInstance); + } + + return result; + } + + //(T, T) + if ( data.IsList ) { + var list = data.AsList; + for ( int i = 0; i < list.Count; ++i ) { + var item = list[i]; + fsData keyData; + fsData valueData; + if ( ( result += CheckType(item, fsDataType.Object) ).Failed ) return result; + if ( ( result += CheckKey(item, "Key", out keyData) ).Failed ) return result; + if ( ( result += CheckKey(item, "Value", out valueData) ).Failed ) return result; + + object keyInstance = null; + object valueInstance = null; + if ( ( result += Serializer.TryDeserialize(keyData, keyStorageType, ref keyInstance) ).Failed ) return result; + if ( ( result += Serializer.TryDeserialize(valueData, valueStorageType, ref valueInstance) ).Failed ) return result; + + instance.Add(keyInstance, valueInstance); + } + + return result; + } + + return FailExpectedType(data, fsDataType.Array, fsDataType.Object); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs.meta new file mode 100644 index 0000000..05b4539 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsDictionaryConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 08eebbb7f611f0549b447ac739f0d39e +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs new file mode 100644 index 0000000..632b1e3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + /// Serializes and deserializes enums by their current name. + public class fsEnumConverter : fsConverter + { + public override bool CanProcess(Type type) { + return type.IsEnum; + } + + public override bool RequestCycleSupport(Type storageType) { + return false; + } + + public override bool RequestInheritanceSupport(Type storageType) { + return false; + } + + public override object CreateInstance(fsData data, Type storageType) { + // In .NET compact, Enum.ToObject(Type, Object) is defined but the overloads like + // Enum.ToObject(Type, int) are not -- so we get around this by boxing the value. + return Enum.ToObject(storageType, (object)0); + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + if ( fsGlobalConfig.SerializeEnumsAsInteger ) { + serialized = new fsData(Convert.ToInt64(instance)); + } else if ( storageType.RTIsDefined(false) ) { + long instanceValue = Convert.ToInt64(instance); + var result = new StringBuilder(); + + bool first = true; + foreach ( var value in Enum.GetValues(storageType) ) { + long integralValue = Convert.ToInt64(value); + bool isSet = ( instanceValue & integralValue ) == integralValue; + + if ( isSet ) { + if ( first == false ) result.Append(","); + first = false; + result.Append(value.ToString()); + } + } + + serialized = new fsData(result.ToString()); + } else { + serialized = new fsData(Enum.GetName(storageType, instance)); + } + return fsResult.Success; + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + if ( data.IsString ) { + string[] enumValues = data.AsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + + long instanceValue = 0; + for ( int i = 0; i < enumValues.Length; ++i ) { + string enumValue = enumValues[i]; + + // Verify that the enum name exists; Enum.TryParse is only available in .NET 4.0 + // and above :(. + if ( ArrayContains(Enum.GetNames(storageType), enumValue) == false ) { + return fsResult.Fail("Cannot find enum name " + enumValue + " on type " + storageType); + } + + long flagValue = (long)Convert.ChangeType(Enum.Parse(storageType, enumValue), typeof(long)); + instanceValue |= flagValue; + } + + instance = Enum.ToObject(storageType, (object)instanceValue); + return fsResult.Success; + + } else if ( data.IsInt64 ) { + + int enumValue = (int)data.AsInt64; + + // In .NET compact, Enum.ToObject(Type, Object) is defined but the overloads like + // Enum.ToObject(Type, int) are not -- so we get around this by boxing the value. + instance = Enum.ToObject(storageType, (object)enumValue); + return fsResult.Success; + } + + return fsResult.Fail("EnumConverter encountered an unknown JSON data type"); + } + + /// Returns true if the given value is contained within the specified array. + private static bool ArrayContains(T[] values, T value) { + for ( int i = 0; i < values.Length; ++i ) { + if ( EqualityComparer.Default.Equals(values[i], value) ) { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs.meta new file mode 100644 index 0000000..6c67860 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsEnumConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c928d500b6162c4a870b0f8fd0803fc +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs new file mode 100644 index 0000000..ba33ae5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs @@ -0,0 +1,80 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// This allows you to forward serialization of an object to one of its members. + // [fsForward("Values")] + // struct Wrapper { + // public int[] Values; + // } + // Then `Wrapper` will be serialized into a JSON array of integers. It will be as if `Wrapper` doesn't exist. + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct)] + public sealed class fsForwardAttribute : Attribute + { + /// The name of the member we should serialize as. + public string MemberName; + + /// Forward object serialization to an instance member. See class comment. + public fsForwardAttribute(string memberName) { + MemberName = memberName; + } + } +} + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsForwardConverter : fsConverter + { + private string _memberName; + + public fsForwardConverter(fsForwardAttribute attribute) { + _memberName = attribute.MemberName; + } + + public override bool CanProcess(Type type) { + throw new NotSupportedException("Please use the [fsForward(...)] attribute."); + } + + private fsResult GetProperty(object instance, out fsMetaProperty property) { + var properties = fsMetaType.Get(instance.GetType()).Properties; + for ( int i = 0; i < properties.Length; ++i ) { + if ( properties[i].MemberName == _memberName ) { + property = properties[i]; + return fsResult.Success; + } + } + + property = default(fsMetaProperty); + return fsResult.Fail("No property named \"" + _memberName + "\" on " + instance.GetType().FriendlyName()); + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + serialized = fsData.Null; + var result = fsResult.Success; + + fsMetaProperty property; + if ( ( result += GetProperty(instance, out property) ).Failed ) return result; + + var actualInstance = property.Read(instance); + return Serializer.TrySerialize(property.StorageType, actualInstance, out serialized); + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + var result = fsResult.Success; + + fsMetaProperty property; + if ( ( result += GetProperty(instance, out property) ).Failed ) return result; + + object actualInstance = null; + if ( ( result += Serializer.TryDeserialize(data, property.StorageType, ref actualInstance) ).Failed ) + return result; + + property.Write(instance, actualInstance); + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + return fsMetaType.Get(storageType).CreateInstance(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs.meta new file mode 100644 index 0000000..ee6f4ec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsForwardConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3d980f5fcb4bdda4d8cfcd296dc5d5cb +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs new file mode 100644 index 0000000..ae56c05 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsListConverter : fsConverter + { + + public override bool CanProcess(Type type) { + return type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>); + } + + public override object CreateInstance(fsData data, Type storageType) { + return fsMetaType.Get(storageType).CreateInstance(); + } + + public override fsResult TrySerialize(object instance_, out fsData serialized, Type storageType) { + var instance = (IList)instance_; + var result = fsResult.Success; + + var elementType = storageType.RTGetGenericArguments()[0]; + serialized = fsData.CreateList(instance.Count); + var serializedList = serialized.AsList; + + for ( var i = 0; i < instance.Count; i++ ) { + var item = instance[i]; + fsData itemData; + + // auto instance? + if ( item == null && elementType.RTIsDefined(true) ) { + item = fsMetaType.Get(elementType).CreateInstance(); + instance[i] = item; + } + + var itemResult = Serializer.TrySerialize(elementType, item, out itemData); + result.AddMessages(itemResult); + if ( itemResult.Failed ) continue; + serializedList.Add(itemData); + } + return result; + } + + public override fsResult TryDeserialize(fsData data, ref object instance_, Type storageType) { + var instance = (IList)instance_; + var result = fsResult.Success; + + if ( ( result += CheckType(data, fsDataType.Array) ).Failed ) { + return result; + } + + if ( data.AsList.Count == 0 ) { + return fsResult.Success; + } + + var elementType = storageType.RTGetGenericArguments()[0]; + //if we have the exact same count, deserialize overwrite + if ( instance.Count == data.AsList.Count && fsMetaType.Get(elementType).DeserializeOverwriteRequest ) { + for ( var i = 0; i < data.AsList.Count; i++ ) { + object item = instance[i]; + var itemResult = Serializer.TryDeserialize(data.AsList[i], elementType, ref item); + if ( itemResult.Failed ) continue; + instance[i] = item; + } + return fsResult.Success; + } + + //otherwise clear and start anew + instance.Clear(); + var capacityProperty = instance.GetType().RTGetProperty("Capacity"); + capacityProperty.SetValue(instance, data.AsList.Count); + for ( var i = 0; i < data.AsList.Count; i++ ) { + object item = null; + var itemResult = Serializer.TryDeserialize(data.AsList[i], elementType, ref item); + if ( itemResult.Failed ) continue; + instance.Add(item); + } + return fsResult.Success; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs.meta new file mode 100644 index 0000000..38bc9cd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsListConverter.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 1bbe0663eca9e63479fc5f4d5633a727 +timeCreated: 1542286078 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs new file mode 100644 index 0000000..8d66dec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs @@ -0,0 +1,136 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsPrimitiveConverter : fsConverter + { + public override bool CanProcess(Type type) { + return + type.IsPrimitive || + type == typeof(string) || + type == typeof(decimal); + } + + public override bool RequestCycleSupport(Type storageType) { + return false; + } + + public override bool RequestInheritanceSupport(Type storageType) { + return false; + } + + private static bool UseBool(Type type) { + return type == typeof(bool); + } + + private static bool UseInt64(Type type) { + return type == typeof(sbyte) || type == typeof(byte) || + type == typeof(Int16) || type == typeof(UInt16) || + type == typeof(Int32) || type == typeof(UInt32) || + type == typeof(Int64) || type == typeof(UInt64); + } + + private static bool UseDouble(Type type) { + return type == typeof(float) || + type == typeof(double) || + type == typeof(decimal); + } + + private static bool UseString(Type type) { + return type == typeof(string) || + type == typeof(char); + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + var instanceType = instance.GetType(); + + if ( fsGlobalConfig.Serialize64BitIntegerAsString && ( instanceType == typeof(Int64) || instanceType == typeof(UInt64) ) ) { + serialized = new fsData((string)Convert.ChangeType(instance, typeof(string))); + return fsResult.Success; + } + + if ( UseBool(instanceType) ) { + serialized = new fsData((bool)instance); + return fsResult.Success; + } + + if ( UseInt64(instanceType) ) { + serialized = new fsData((Int64)Convert.ChangeType(instance, typeof(Int64))); + return fsResult.Success; + } + + if ( UseDouble(instanceType) ) { + // Casting from float to double introduces floating point jitter, ie, 0.1 becomes 0.100000001490116. + // Casting to decimal as an intermediate step removes the jitter. Not sure why. + if ( instance.GetType() == typeof(float) && + // Decimal can't store float.MinValue/float.MaxValue/float.PositiveInfinity/float.NegativeInfinity/float.NaN - an exception gets thrown in that scenario. + (float)instance != float.MinValue && + (float)instance != float.MaxValue && + !float.IsInfinity((float)instance) && + !float.IsNaN((float)instance) + ) { + serialized = new fsData((double)(decimal)(float)instance); + return fsResult.Success; + } + + serialized = new fsData((double)Convert.ChangeType(instance, typeof(double))); + return fsResult.Success; + } + + if ( UseString(instanceType) ) { + serialized = new fsData((string)Convert.ChangeType(instance, typeof(string))); + return fsResult.Success; + } + + serialized = null; + return fsResult.Fail("Unhandled primitive type " + instance.GetType()); + } + + public override fsResult TryDeserialize(fsData storage, ref object instance, Type storageType) { + var result = fsResult.Success; + + if ( UseBool(storageType) ) { + if ( ( result += CheckType(storage, fsDataType.Boolean) ).Succeeded ) { + instance = storage.AsBool; + } + return result; + } + + if ( UseDouble(storageType) || UseInt64(storageType) ) { + if ( storage.IsDouble ) { + if ( storageType == typeof(float) ) { + instance = (float)storage.AsDouble; + } else { + instance = Convert.ChangeType(storage.AsDouble, storageType); + } + } else if ( storage.IsInt64 ) { + if ( storageType == typeof(int) ) { + instance = (int)storage.AsInt64; + } else { + instance = Convert.ChangeType(storage.AsInt64, storageType); + } + } else if ( fsGlobalConfig.Serialize64BitIntegerAsString && storage.IsString && + ( storageType == typeof(Int64) || storageType == typeof(UInt64) ) ) { + instance = Convert.ChangeType(storage.AsString, storageType); + } else { + return fsResult.Fail(GetType().Name + " expected number but got " + storage.Type + " in " + storage); + } + return fsResult.Success; + } + + if ( UseString(storageType) ) { + if ( ( result += CheckType(storage, fsDataType.String) ).Succeeded ) { + if ( storageType == typeof(char) ) { + instance = storage.AsString[0]; + } else { + instance = storage.AsString; + } + } + return result; + } + + return fsResult.Fail(GetType().Name + ": Bad data; expected bool, number, string, but got " + storage); + } + } +} + diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs.meta new file mode 100644 index 0000000..c3cba26 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsPrimitiveConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 36a3ab41e204e8043a26b8c4abce84af +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs new file mode 100644 index 0000000..d38964e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsReflectedConverter : fsConverter + { + + public override bool CanProcess(Type type) { + if ( type.IsArray || typeof(ICollection).IsAssignableFrom(type) ) { + return false; + } + return true; + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + serialized = fsData.CreateDictionary(); + var result = fsResult.Success; + + fsMetaType metaType = fsMetaType.Get(instance.GetType()); + + //Dont do this for UnityObject. While there is fsUnityObjectConverter, this converter is also used as override, + //when serializing a UnityObject directly. + object defaultInstance = null; + if ( fsGlobalConfig.SerializeDefaultValues == false && !( instance is UnityEngine.Object ) ) { + defaultInstance = metaType.GetDefaultInstance(); + } + + for ( int i = 0; i < metaType.Properties.Length; ++i ) { + fsMetaProperty property = metaType.Properties[i]; + + if ( property.WriteOnly ) { + continue; + } + + if ( property.AsReference && Serializer.IgnoreSerializeCycleReferences ) { + continue; + } + + var propertyValue = property.Read(instance); + + // auto instance? + if ( propertyValue == null && property.AutoInstance ) { + propertyValue = fsMetaType.Get(property.StorageType).CreateInstance(); + property.Write(instance, propertyValue); + } else if ( fsGlobalConfig.SerializeDefaultValues == false && defaultInstance != null ) { + if ( Equals(propertyValue, property.Read(defaultInstance)) ) { + continue; + } + } + + fsData serializedData; + var itemResult = Serializer.TrySerialize(property.StorageType, propertyValue, out serializedData); + result.AddMessages(itemResult); + if ( itemResult.Failed ) { + continue; + } + + serialized.AsDictionary[property.JsonName] = serializedData; + } + + return result; + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + var result = fsResult.Success; + + // Verify that we actually have an Object + if ( ( result += CheckType(data, fsDataType.Object) ).Failed ) { + return result; + } + + if ( data.AsDictionary.Count == 0 ) { + return fsResult.Success; + } + + fsMetaType metaType = fsMetaType.Get(storageType); + + for ( int i = 0; i < metaType.Properties.Length; ++i ) { + fsMetaProperty property = metaType.Properties[i]; + + if ( property.ReadOnly ) { + continue; + } + + fsData propertyData; + if ( data.AsDictionary.TryGetValue(property.JsonName, out propertyData) ) { + object deserializedValue = null; + + //This does not work well with no serializing default values -> Find a workaround. + if ( fsGlobalConfig.SerializeDefaultValues ) { + if ( metaType.DeserializeOverwriteRequest || typeof(ICollection).IsAssignableFrom(storageType) ) { + deserializedValue = property.Read(instance); + } + } + + var itemResult = Serializer.TryDeserialize(propertyData, property.StorageType, ref deserializedValue, null); + result.AddMessages(itemResult); + if ( itemResult.Failed ) continue; + + property.Write(instance, deserializedValue); + } + } + + return result; + } + + public override object CreateInstance(fsData data, Type storageType) { + fsMetaType metaType = fsMetaType.Get(storageType); + return metaType.CreateInstance(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs.meta new file mode 100644 index 0000000..5c6ea79 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsReflectedConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 12c3fc91102686643b600cfd6acbfc44 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs new file mode 100644 index 0000000..c827f30 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs @@ -0,0 +1,41 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer.Internal +{ + public class fsTypeConverter : fsConverter + { + public override bool CanProcess(Type type) { + return typeof(Type).IsAssignableFrom(type); + } + + public override bool RequestCycleSupport(Type type) { + return false; + } + + public override bool RequestInheritanceSupport(Type type) { + return false; + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + var type = (Type)instance; + serialized = new fsData(type.FullName); + return fsResult.Success; + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + if ( data.IsString == false ) { + return fsResult.Fail("Type converter requires a string"); + } + + instance = ReflectionTools.GetType(data.AsString, true); + if ( instance == null ) { + return fsResult.Fail("Unable to find type " + data.AsString); + } + return fsResult.Success; + } + + public override object CreateInstance(fsData data, Type storageType) { + return storageType; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs.meta new file mode 100644 index 0000000..5323151 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/Converters/fsTypeConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 04822397e73105643b393319d787924a +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs new file mode 100644 index 0000000..c9329ec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs @@ -0,0 +1,9 @@ +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// Implement on type to migrate from another serialization-wise. This works in pair with the [fsMigrateToAttribute] and [fsMigrateVersionsAttribute] attributes. + public interface IMigratable { } + public interface IMigratable : IMigratable + { + void Migrate(T model); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs.meta new file mode 100644 index 0000000..c93354a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/IMigratable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fe18dd8cd84b3045b3f8c4c66ab3827 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs new file mode 100644 index 0000000..5778dad --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs @@ -0,0 +1,17 @@ +namespace ParadoxNotion.Serialization.FullSerializer +{ + + ///Will receive callbacks on serialization/deserialization. Multiple collectors are possible and are stacked. + public interface ISerializationCollector : ISerializationCollectable + { + ///Called when the collector pushed on stack with parent the previous collector + void OnPush(ISerializationCollector parent); + ///Called when a collectable is to be collected. The depth is local to this collector only starting from 0 + void OnCollect(ISerializationCollectable child, int depth); + ///Called when the collector pops from stack with parent the previous collector + void OnPop(ISerializationCollector parent); + } + + ///Will be possible to be collected by a collector + public interface ISerializationCollectable { } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs.meta new file mode 100644 index 0000000..2bbc6dc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/ISerializationCollector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcdec3f36feecf44b9aa5892c687b3fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt new file mode 100644 index 0000000..2e219a8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jacob Dufault + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt.meta new file mode 100644 index 0000000..6032b4c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/License (FullSerializer).txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c00e5ee9fdcb1cf4fa3e604852fdeed4 +TextScriptImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs new file mode 100644 index 0000000..9fc39cb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs @@ -0,0 +1,87 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// Will make the field deserialize-only + [AttributeUsage(AttributeTargets.Field)] + public sealed class fsWriteOnlyAttribute : Attribute { } + + /// Will make the field serialize-only + [AttributeUsage(AttributeTargets.Field)] + public sealed class fsReadOnlyAttribute : Attribute { } + + /// Explicitly ignore a field from being serialized completely + [AttributeUsage(AttributeTargets.Field)] + public sealed class fsIgnoreAttribute : Attribute { } + + /// Explicitly ignore a field from being serialized/deserialized in build + [AttributeUsage(AttributeTargets.Field)] + public sealed class fsIgnoreInBuildAttribute : Attribute { } + + /// Explicitly opt in a field to be serialized and with specified name + [AttributeUsage(AttributeTargets.Field)] + public sealed class fsSerializeAsAttribute : Attribute + { + readonly public string Name; + public fsSerializeAsAttribute() { } + public fsSerializeAsAttribute(string name) { + this.Name = name; + } + } + + ///---------------------------------------------------------------------------------------------- + + /// Use on a class to deserialize migrate into target type. This works in pair with IMigratable interface. + [AttributeUsage(AttributeTargets.Class)] + public class fsMigrateToAttribute : System.Attribute + { + public readonly System.Type targetType; + public fsMigrateToAttribute(System.Type targetType) { + this.targetType = targetType; + } + } + + /// Use on a class to specify previous serialization versions to migrate from. This works in pair with IMigratable interface. + [AttributeUsage(AttributeTargets.Class)] + public class fsMigrateVersionsAttribute : System.Attribute + { + public readonly System.Type[] previousTypes; + public fsMigrateVersionsAttribute(params System.Type[] previousTypes) { + this.previousTypes = previousTypes; + } + } + + /// Use on a class and field to request cycle references support + // TODO: Refactor FS to only be required on field. + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Field)] + public sealed class fsSerializeAsReference : Attribute { } + + /// Use on a class to request try deserialize overwrite + [AttributeUsage(AttributeTargets.Class)] + public sealed class fsDeserializeOverwrite : Attribute { } + + /// Use on a class to mark it for creating instance unititialized (which is faster) + [AttributeUsage(AttributeTargets.Class)] + public class fsUninitialized : System.Attribute { } + + /// Use on a class to request try create instance automatically on serialization + [AttributeUsage(AttributeTargets.Class)] + public sealed class fsAutoInstance : Attribute + { + public readonly bool makeInstance; + public fsAutoInstance(bool makeInstance = true) { + this.makeInstance = makeInstance; + } + } + + /// This attribute controls some serialization behavior for a type. See the comments on each of the fields for more information. + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] + public sealed class fsObjectAttribute : Attribute + { + //Converter override to use + public Type Converter; + //Processor to use + public Type Processor; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs.meta new file mode 100644 index 0000000..a3b96c0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsAttributes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1562b1a4a986ffc4fbe1694ff00bf6be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs new file mode 100644 index 0000000..d37f754 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// The serialization converter allows for customization of the serialization process. + public abstract class fsBaseConverter + { + /// The serializer that owns this converter. + public fsSerializer Serializer; + + /// Construct an object instance that will be passed to TryDeserialize. This should **not** deserialize the object. + public virtual object CreateInstance(fsData data, Type storageType) { + if ( RequestCycleSupport(storageType) ) { + throw new InvalidOperationException("Please override CreateInstance for " + + GetType().FullName + "; the object graph for " + storageType + + " can contain potentially contain cycles, so separated instance creation " + + "is needed"); + } + + return storageType; + } + + /// If true, then the serializer will support cyclic references with the given converted type. + public virtual bool RequestCycleSupport(Type storageType) { + if ( storageType == typeof(string) ) return false; + return storageType.IsClass || storageType.IsInterface; + } + + /// If true, then the serializer will include inheritance data for the given converter. + public virtual bool RequestInheritanceSupport(Type storageType) { + return storageType.IsSealed == false; + } + + /// Serialize the actual object into the given data storage. + public abstract fsResult TrySerialize(object instance, out fsData serialized, Type storageType); + + /// Deserialize data into the object instance. + public abstract fsResult TryDeserialize(fsData data, ref object instance, Type storageType); + + protected fsResult FailExpectedType(fsData data, params fsDataType[] types) { + return fsResult.Fail(GetType().Name + " expected one of " + + string.Join(", ", types.Select(t => t.ToString()).ToArray()) + + " but got " + data.Type + " in " + data); + } + + protected fsResult CheckType(fsData data, fsDataType type) { + if ( data.Type != type ) { + return fsResult.Fail(GetType().Name + " expected " + type + " but got " + data.Type + " in " + data); + } + return fsResult.Success; + } + + protected fsResult CheckKey(fsData data, string key, out fsData subitem) { + return CheckKey(data.AsDictionary, key, out subitem); + } + + protected fsResult CheckKey(Dictionary data, string key, out fsData subitem) { + if ( data.TryGetValue(key, out subitem) == false ) { + return fsResult.Fail(GetType().Name + " requires a <" + key + "> key in the data " + data); + } + return fsResult.Success; + } + + protected fsResult SerializeMember(Dictionary data, Type overrideConverterType, string name, T value) { + fsData memberData; + var result = Serializer.TrySerialize(typeof(T), value, out memberData, overrideConverterType); + if ( result.Succeeded ) data[name] = memberData; + return result; + } + + protected fsResult DeserializeMember(Dictionary data, Type overrideConverterType, string name, out T value) { + fsData memberData; + if ( data.TryGetValue(name, out memberData) == false ) { + value = default(T); + return fsResult.Fail("Unable to find member \"" + name + "\""); + } + + object storage = null; + var result = Serializer.TryDeserialize(memberData, typeof(T), ref storage, overrideConverterType); + value = (T)storage; + return result; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs.meta new file mode 100644 index 0000000..94e0bad --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsBaseConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9a98c62150afed7418a6da0abe9fe7a8 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs new file mode 100644 index 0000000..878f716 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs @@ -0,0 +1,13 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + /// The serialization converter allows for customization of the serialization process. + public abstract class fsConverter : fsBaseConverter + { + + /// Can this converter serialize and deserialize the given object type? + public abstract bool CanProcess(Type type); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs.meta new file mode 100644 index 0000000..ec56a4e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c81fdbd9e3ff8904fa0b5152599f13ac +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs new file mode 100644 index 0000000..c1978c6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + public class fsCyclicReferenceManager + { + // We use the default ReferenceEquals when comparing two objects because + // custom objects may override equals methods. These overriden equals may + // treat equals differently; we want to serialize/deserialize the object + // graph *identically* to how it currently exists. + class ObjectReferenceEqualityComparator : IEqualityComparer + { + public static readonly IEqualityComparer Instance = new ObjectReferenceEqualityComparator(); + bool IEqualityComparer.Equals(object x, object y) { return ReferenceEquals(x, y); } + int IEqualityComparer.GetHashCode(object obj) { return RuntimeHelpers.GetHashCode(obj); } + } + + private Dictionary _objectIds; + private int _nextId; + + private Dictionary _marked; + private int _depth; + + public fsCyclicReferenceManager() { + _objectIds = new Dictionary(ObjectReferenceEqualityComparator.Instance); + _marked = new Dictionary(); + } + + public void Clear() { + _depth = 0; + _nextId = 0; + _objectIds.Clear(); + _marked.Clear(); + } + + public bool Enter() { + _depth++; + return _depth == 1; + } + + public bool Exit() { + _depth--; + + if ( _depth == 0 ) { + _nextId = 0; + _objectIds.Clear(); + _marked.Clear(); + } + + if ( _depth < 0 ) { + _depth = 0; + throw new InvalidOperationException("Internal Error - Mismatched Enter/Exit"); + } + + return _depth == 0; + } + + public object GetReferenceObject(int id) { + object result = null; + if ( !_marked.TryGetValue(id, out result) ) { + throw new InvalidOperationException("Internal Deserialization Error - Object " + + "definition has not been encountered for object with id=" + id + + "; have you reordered or modified the serialized data? If this is an issue " + + "with an unmodified Full Json implementation and unmodified serialization " + + "data, please report an issue with an included test case."); + } + + return result; + } + + public void AddReferenceWithId(int id, object reference) { + _marked[id] = reference; + } + + public int GetReferenceId(object item) { + int id; + if ( !_objectIds.TryGetValue(item, out id) ) { + id = _nextId++; + _objectIds[item] = id; + } + return id; + } + + public bool IsReference(object item) { + return _marked.ContainsKey(GetReferenceId(item)); + } + + public void MarkSerialized(object item) { + int referenceId = GetReferenceId(item); + + if ( _marked.ContainsKey(referenceId) ) { + throw new InvalidOperationException("Internal Error - " + item + " has already been marked as serialized"); + } + + _marked[referenceId] = item; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs.meta new file mode 100644 index 0000000..7877f00 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsCyclicReferenceManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7bdee320e42b9084e82dfe394c02852e +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs new file mode 100644 index 0000000..45d5b6a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs @@ -0,0 +1,291 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + /// The actual type that a JsonData instance can store. + public enum fsDataType + { + Array, + Object, + Double, + Int64, + Boolean, + String, + Null + } + + /// A union type that stores a serialized value. The stored type can be one of six different types: null, boolean, double, Int64, string, Dictionary, or List. + public sealed class fsData + { + + /// The raw value that this serialized data stores. It can be one of six different types; a boolean, a double, Int64, a string, a Dictionary, or a List. + private object _value; + + public readonly static fsData True = new fsData(true); + public readonly static fsData False = new fsData(false); + public readonly static fsData Null = new fsData(); + + public fsDataType Type { + get + { + if ( _value == null ) return fsDataType.Null; + if ( _value is double ) return fsDataType.Double; + if ( _value is Int64 ) return fsDataType.Int64; + if ( _value is bool ) return fsDataType.Boolean; + if ( _value is string ) return fsDataType.String; + if ( _value is Dictionary ) return fsDataType.Object; + if ( _value is List ) return fsDataType.Array; + throw new InvalidOperationException("unknown JSON data type"); + } + } + + ///---------------------------------------------------------------------------------------------- + + /// Creates a fsData instance that holds null. + public fsData() { + _value = null; + } + + /// Creates a fsData instance that holds a boolean. + public fsData(bool boolean) { + _value = boolean; + } + + /// Creates a fsData instance that holds a double. + public fsData(double f) { + _value = f; + } + + /// Creates a new fsData instance that holds an integer. + public fsData(Int64 i) { + _value = i; + } + + /// Creates a fsData instance that holds a string. + public fsData(string str) { + _value = str; + } + + /// Creates a fsData instance that holds a dictionary of values. + public fsData(Dictionary dict) { + _value = dict; + } + + /// Creates a fsData instance that holds a list of values. + public fsData(List list) { + _value = list; + } + + ///---------------------------------------------------------------------------------------------- + + /// Helper method to create a fsData instance that holds a dictionary. + public static fsData CreateDictionary() { + return new fsData(new Dictionary( + fsGlobalConfig.IsCaseSensitive ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase)); + } + + /// Helper method to create a fsData instance that holds a list. + public static fsData CreateList() { + return new fsData(new List()); + } + + /// Helper method to create a fsData instance that holds a list with the initial capacity. + public static fsData CreateList(int capacity) { + return new fsData(new List(capacity)); + } + + ///---------------------------------------------------------------------------------------------- + + /// Transforms the internal fsData instance into a dictionary. + internal void BecomeDictionary() { + _value = new Dictionary(StringComparer.Ordinal); + } + + /// Returns a shallow clone of this data instance. + internal fsData Clone() { + var clone = new fsData(); + clone._value = _value; + return clone; + } + + ///---------------------------------------------------------------------------------------------- + + /// Returns true if this fsData instance maps back to null. + public bool IsNull { + get { return _value == null; } + } + + /// Returns true if this fsData instance maps back to a double. + public bool IsDouble { + get { return _value is double; } + } + + /// Returns true if this fsData instance maps back to an Int64. + public bool IsInt64 { + get { return _value is Int64; } + } + + /// Returns true if this fsData instance maps back to a boolean. + public bool IsBool { + get { return _value is bool; } + } + + /// Returns true if this fsData instance maps back to a string. + public bool IsString { + get { return _value is string; } + } + + /// Returns true if this fsData instance maps back to a Dictionary. + public bool IsDictionary { + get { return _value is Dictionary; } + } + + /// Returns true if this fsData instance maps back to a List. + public bool IsList { + get { return _value is List; } + } + + ///---------------------------------------------------------------------------------------------- + + /// Casts this fsData to a double. Throws an exception if it is not a double. + public double AsDouble { + get { return Cast(); } + } + + /// Casts this fsData to an Int64. Throws an exception if it is not an Int64. + public Int64 AsInt64 { + get { return Cast(); } + } + + /// Casts this fsData to a boolean. Throws an exception if it is not a boolean. + public bool AsBool { + get { return Cast(); } + } + + /// Casts this fsData to a string. Throws an exception if it is not a string. + public string AsString { + get { return Cast(); } + } + + /// Casts this fsData to a Dictionary. Throws an exception if it is not a Dictionary. + public Dictionary AsDictionary { + get { return Cast>(); } + } + + /// Casts this fsData to a List. Throws an exception if it is not a List. + public List AsList { + get { return Cast>(); } + } + + /// Internal helper method to cast the underlying storage to the given type or throw a pretty printed exception on failure. + private T Cast() { + if ( _value is T ) { return (T)_value; } + + throw new InvalidCastException("Unable to cast <" + this + "> (with type = " + + _value.GetType() + ") to type " + typeof(T)); + } + + ///---------------------------------------------------------------------------------------------- + + public override string ToString() { + return fsJsonPrinter.CompressedJson(this); + } + + /// Determines whether the specified object is equal to the current object. + public override bool Equals(object obj) { + return Equals(obj as fsData); + } + + /// Determines whether the specified object is equal to the current object. + public bool Equals(fsData other) { + if ( other == null || Type != other.Type ) { + return false; + } + + switch ( Type ) { + case fsDataType.Null: + return true; + + case fsDataType.Double: + return AsDouble == other.AsDouble || Math.Abs(AsDouble - other.AsDouble) < double.Epsilon; + + case fsDataType.Int64: + return AsInt64 == other.AsInt64; + + case fsDataType.Boolean: + return AsBool == other.AsBool; + + case fsDataType.String: + return AsString == other.AsString; + + case fsDataType.Array: + var thisList = AsList; + var otherList = other.AsList; + + if ( thisList.Count != otherList.Count ) return false; + + for ( int i = 0; i < thisList.Count; ++i ) { + if ( thisList[i].Equals(otherList[i]) == false ) { + return false; + } + } + + return true; + + case fsDataType.Object: + var thisDict = AsDictionary; + var otherDict = other.AsDictionary; + + if ( thisDict.Count != otherDict.Count ) return false; + + foreach ( string key in thisDict.Keys ) { + if ( otherDict.ContainsKey(key) == false ) { + return false; + } + + if ( thisDict[key].Equals(otherDict[key]) == false ) { + return false; + } + } + + return true; + } + + throw new Exception("Unknown data type"); + } + + /// Returns true iff a == b. + public static bool operator ==(fsData a, fsData b) { + // If both are null, or both are same instance, return true. + if ( ReferenceEquals(a, b) ) { + return true; + } + + // If one is null, but not both, return false. + if ( ( (object)a == null ) || ( (object)b == null ) ) { + return false; + } + + if ( a.IsDouble && b.IsDouble ) { + return Math.Abs(a.AsDouble - b.AsDouble) < double.Epsilon; + } + + return a.Equals(b); + } + + /// Returns true iff a != b. + public static bool operator !=(fsData a, fsData b) { + return !( a == b ); + } + + /// Returns a hash code for this instance. + public override int GetHashCode() { + return _value.GetHashCode(); + } + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs.meta new file mode 100644 index 0000000..fea425b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 780ba11f7939c2643a2c94ba9a4c2c6d +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs new file mode 100644 index 0000000..9dcd841 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + /// The direct converter is similar to a regular converter, except that it targets specifically only one type. This means that it can be used without performance impact when discovering converters. It is strongly recommended that you derive from fsDirectConverter{TModel}. + public abstract class fsDirectConverter : fsBaseConverter + { + public abstract Type ModelType { get; } + } + + public abstract class fsDirectConverter : fsDirectConverter + { + public override Type ModelType { get { return typeof(TModel); } } + + public sealed override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + var serializedDictionary = new Dictionary(); + var result = DoSerialize((TModel)instance, serializedDictionary); + serialized = new fsData(serializedDictionary); + return result; + } + + public sealed override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + var result = fsResult.Success; + if ( ( result += CheckType(data, fsDataType.Object) ).Failed ) return result; + + var obj = (TModel)instance; + result += DoDeserialize(data.AsDictionary, ref obj); + instance = obj; + return result; + } + + protected abstract fsResult DoSerialize(TModel model, Dictionary serialized); + protected abstract fsResult DoDeserialize(Dictionary data, ref TModel model); + } +} diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs.meta new file mode 100644 index 0000000..1cba2b1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsDirectConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 137ee4bc1374e32488d1adcd174bad7a +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs new file mode 100644 index 0000000..7d81f55 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs @@ -0,0 +1,37 @@ +namespace ParadoxNotion.Serialization.FullSerializer +{ + + // Global configuration options. + public static class fsGlobalConfig + { + + /// Serialize default values? + public static bool SerializeDefaultValues = false; + + /// Should deserialization be case sensitive? If this is false and the JSON has multiple members with the same keys only separated by case, then this results in undefined behavior. + public static bool IsCaseSensitive = false; + + /// The attributes that will force a field or property to *not* be serialized. Ignore attribute take predecence. + public static System.Type[] IgnoreSerializeAttributes = + { + typeof(System.NonSerializedAttribute), + typeof(fsIgnoreAttribute) + }; + + /// The attributes that will force a field or property to be serialized. Ignore attribute take predecence. + public static System.Type[] SerializeAttributes = + { + typeof(UnityEngine.SerializeField), + typeof(fsSerializeAsAttribute) + }; + + /// If not null, this string format will be used for DateTime instead of the default one. + public static string CustomDateTimeFormatString = null; + + /// Int64 and UInt64 will be serialized and deserialized as string for compatibility + public static bool Serialize64BitIntegerAsString = false; + + /// Enums are serialized using their names by default. Setting this to true will serialize them as integers instead. + public static bool SerializeEnumsAsInteger = true; + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs.meta new file mode 100644 index 0000000..3bed647 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsGlobalConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 766ca959e12335842974a66cbf15c23f +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs new file mode 100644 index 0000000..501995b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs @@ -0,0 +1,489 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + // TODO: properly propagate warnings/etc for fsResult states + + /// A simple recursive descent parser for JSON. + public class fsJsonParser + { + private int _start; + private string _input; + + private fsResult MakeFailure(string message) { + int start = Math.Max(0, _start - 20); + int length = Math.Min(50, _input.Length - start); + + string error = "Error while parsing: " + message + "; context = <" + + _input.Substring(start, length) + ">"; + return fsResult.Fail(error); + } + + private bool TryMoveNext() { + if ( _start < _input.Length ) { + ++_start; + return true; + } + + return false; + } + + private bool HasValue() { + return HasValue(0); + } + + private bool HasValue(int offset) { + return ( _start + offset ) >= 0 && ( _start + offset ) < _input.Length; + } + + private char Character() { + return Character(0); + } + + private char Character(int offset) { + return _input[_start + offset]; + } + + /// Skips input such that Character() will return a non-whitespace character + private void SkipSpace() { + while ( HasValue() ) { + char c = Character(); + + // whitespace; fine to skip + if ( char.IsWhiteSpace(c) ) { + TryMoveNext(); + continue; + } + + // comment? + if ( HasValue(1) && Character(0) == '/' ) { + if ( Character(1) == '/' ) { + // skip the rest of the line + while ( HasValue() && Environment.NewLine.Contains("" + Character()) == false ) { + TryMoveNext(); + } + continue; + } else if ( Character(1) == '*' ) { + // skip to comment close + TryMoveNext(); + TryMoveNext(); + while ( HasValue(1) ) { + if ( Character(0) == '*' && Character(1) == '/' ) { + TryMoveNext(); + TryMoveNext(); + TryMoveNext(); + break; + } else { + TryMoveNext(); + } + } + } + // let other checks to check fail + continue; + } + + break; + } + } + + #region Escaping + private bool IsHex(char c) { + return ( ( c >= '0' && c <= '9' ) || + ( c >= 'a' && c <= 'f' ) || + ( c >= 'A' && c <= 'F' ) ); + } + + private uint ParseSingleChar(char c1, uint multipliyer) { + uint p1 = 0; + if ( c1 >= '0' && c1 <= '9' ) + p1 = (uint)( c1 - '0' ) * multipliyer; + else if ( c1 >= 'A' && c1 <= 'F' ) + p1 = (uint)( ( c1 - 'A' ) + 10 ) * multipliyer; + else if ( c1 >= 'a' && c1 <= 'f' ) + p1 = (uint)( ( c1 - 'a' ) + 10 ) * multipliyer; + return p1; + } + + private uint ParseUnicode(char c1, char c2, char c3, char c4) { + uint p1 = ParseSingleChar(c1, 0x1000); + uint p2 = ParseSingleChar(c2, 0x100); + uint p3 = ParseSingleChar(c3, 0x10); + uint p4 = ParseSingleChar(c4, 0x1); + + return p1 + p2 + p3 + p4; + } + + private fsResult TryUnescapeChar(out char escaped) { + // skip leading backslash '\' + TryMoveNext(); + if ( HasValue() == false ) { + escaped = ' '; + return MakeFailure("Unexpected end of input after \\"); + } + + switch ( Character() ) { + case '\\': TryMoveNext(); escaped = '\\'; return fsResult.Success; + case '/': TryMoveNext(); escaped = '/'; return fsResult.Success; + case '"': TryMoveNext(); escaped = '\"'; return fsResult.Success; + case 'a': TryMoveNext(); escaped = '\a'; return fsResult.Success; + case 'b': TryMoveNext(); escaped = '\b'; return fsResult.Success; + case 'f': TryMoveNext(); escaped = '\f'; return fsResult.Success; + case 'n': TryMoveNext(); escaped = '\n'; return fsResult.Success; + case 'r': TryMoveNext(); escaped = '\r'; return fsResult.Success; + case 't': TryMoveNext(); escaped = '\t'; return fsResult.Success; + case '0': TryMoveNext(); escaped = '\0'; return fsResult.Success; + case 'u': + TryMoveNext(); + if ( IsHex(Character(0)) + && IsHex(Character(1)) + && IsHex(Character(2)) + && IsHex(Character(3)) ) { + + uint codePoint = ParseUnicode(Character(0), Character(1), Character(2), Character(3)); + + TryMoveNext(); + TryMoveNext(); + TryMoveNext(); + TryMoveNext(); + + escaped = (char)codePoint; + return fsResult.Success; + } + + // invalid escape sequence + escaped = (char)0; + return MakeFailure( + string.Format("invalid escape sequence '\\u{0}{1}{2}{3}'\n", + Character(0), + Character(1), + Character(2), + Character(3))); + default: + escaped = (char)0; + return MakeFailure(string.Format("Invalid escape sequence \\{0}", Character())); + } + } + #endregion + + private fsResult TryParseExact(string content) { + for ( int i = 0; i < content.Length; ++i ) { + if ( Character() != content[i] ) { + return MakeFailure("Expected " + content[i]); + } + + if ( TryMoveNext() == false ) { + return MakeFailure("Unexpected end of content when parsing " + content); + } + } + + return fsResult.Success; + } + + private fsResult TryParseTrue(out fsData data) { + var fail = TryParseExact("true"); + + if ( fail.Succeeded ) { + data = new fsData(true); + return fsResult.Success; + } + + data = null; + return fail; + } + + private fsResult TryParseFalse(out fsData data) { + var fail = TryParseExact("false"); + + if ( fail.Succeeded ) { + data = new fsData(false); + return fsResult.Success; + } + + data = null; + return fail; + } + + private fsResult TryParseNull(out fsData data) { + var fail = TryParseExact("null"); + + if ( fail.Succeeded ) { + data = new fsData(); + return fsResult.Success; + } + + data = null; + return fail; + } + + + private bool IsSeparator(char c) { + return char.IsWhiteSpace(c) || c == ',' || c == '}' || c == ']'; + } + + /// Parses numbers that follow the regular expression [-+](\d+|\d*\.\d*) + private fsResult TryParseNumber(out fsData data) { + int start = _start; + + // read until we get to a separator + while ( + TryMoveNext() && + ( HasValue() && IsSeparator(Character()) == false ) ) { + } + + // try to parse the value + string numberString = _input.Substring(start, _start - start); + + // double -- includes a . + if ( numberString.Contains(".") || numberString.Contains("e") || numberString.Contains("E") || + numberString == "Infinity" || numberString == "-Infinity" || numberString == "NaN" ) { + double doubleValue; + if ( double.TryParse(numberString, NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue) == false ) { + data = null; + return MakeFailure("Bad double format with " + numberString); + } + + data = new fsData(doubleValue); + return fsResult.Success; + } else { + Int64 intValue; + if ( Int64.TryParse(numberString, NumberStyles.Any, CultureInfo.InvariantCulture, out intValue) == false ) { + data = null; + return MakeFailure("Bad Int64 format with " + numberString); + } + + data = new fsData(intValue); + return fsResult.Success; + } + } + + private readonly StringBuilder _cachedStringBuilder = new StringBuilder(256); + /// Parses a string + private fsResult TryParseString(out string str) { + _cachedStringBuilder.Length = 0; + + // skip the first " + if ( Character() != '"' || TryMoveNext() == false ) { + str = string.Empty; + return MakeFailure("Expected initial \" when parsing a string"); + } + + // read until the next " + while ( HasValue() && Character() != '\"' ) { + char c = Character(); + + // escape if necessary + if ( c == '\\' ) { + char unescaped; + var fail = TryUnescapeChar(out unescaped); + if ( fail.Failed ) { + str = string.Empty; + return fail; + } + + _cachedStringBuilder.Append(unescaped); + } + + // no escaping necessary + else { + _cachedStringBuilder.Append(c); + + // get the next character + if ( TryMoveNext() == false ) { + str = string.Empty; + return MakeFailure("Unexpected end of input when reading a string"); + } + } + } + + // skip the first " + if ( HasValue() == false || Character() != '"' || TryMoveNext() == false ) { + str = string.Empty; + return MakeFailure("No closing \" when parsing a string"); + } + + str = _cachedStringBuilder.ToString(); + return fsResult.Success; + } + + /// Parses an array + private fsResult TryParseArray(out fsData arr) { + if ( Character() != '[' ) { + arr = null; + return MakeFailure("Expected initial [ when parsing an array"); + } + + // skip '[' + if ( TryMoveNext() == false ) { + arr = null; + return MakeFailure("Unexpected end of input when parsing an array"); + } + SkipSpace(); + + var result = new List(); + + while ( HasValue() && Character() != ']' ) { + // parse the element + fsData element; + var fail = RunParse(out element); + if ( fail.Failed ) { + arr = null; + return fail; + } + + result.Add(element); + + // parse the comma + SkipSpace(); + if ( HasValue() && Character() == ',' ) { + if ( TryMoveNext() == false ) break; + SkipSpace(); + } + } + + // skip the final ] + if ( HasValue() == false || Character() != ']' || TryMoveNext() == false ) { + arr = null; + return MakeFailure("No closing ] for array"); + } + + arr = new fsData(result); + return fsResult.Success; + } + + private fsResult TryParseObject(out fsData obj) { + if ( Character() != '{' ) { + obj = null; + return MakeFailure("Expected initial { when parsing an object"); + } + + // skip '{' + if ( TryMoveNext() == false ) { + obj = null; + return MakeFailure("Unexpected end of input when parsing an object"); + } + SkipSpace(); + + var result = new Dictionary( + fsGlobalConfig.IsCaseSensitive ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase); + + while ( HasValue() && Character() != '}' ) { + fsResult failure; + + // parse the key + SkipSpace(); + string key; + failure = TryParseString(out key); + if ( failure.Failed ) { + obj = null; + return failure; + } + SkipSpace(); + + // parse the ':' after the key + if ( HasValue() == false || Character() != ':' || TryMoveNext() == false ) { + obj = null; + return MakeFailure("Expected : after key \"" + key + "\""); + } + SkipSpace(); + + // parse the value + fsData value; + failure = RunParse(out value); + if ( failure.Failed ) { + obj = null; + return failure; + } + + result.Add(key, value); + + // parse the comma + SkipSpace(); + if ( HasValue() && Character() == ',' ) { + if ( TryMoveNext() == false ) break; + SkipSpace(); + } + } + + // skip the final } + if ( HasValue() == false || Character() != '}' || TryMoveNext() == false ) { + obj = null; + return MakeFailure("No closing } for object"); + } + + obj = new fsData(result); + return fsResult.Success; + } + + private fsResult RunParse(out fsData data) { + SkipSpace(); + + if ( HasValue() == false ) { + data = default(fsData); + return MakeFailure("Unexpected end of input"); + } + + switch ( Character() ) { + case 'I': // Infinity + case 'N': // NaN + case '.': + case '+': + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': return TryParseNumber(out data); + case '"': { + string str; + fsResult fail = TryParseString(out str); + if ( fail.Failed ) { + data = null; + return fail; + } + data = new fsData(str); + return fsResult.Success; + } + case '[': return TryParseArray(out data); + case '{': return TryParseObject(out data); + case 't': return TryParseTrue(out data); + case 'f': return TryParseFalse(out data); + case 'n': return TryParseNull(out data); + default: + data = null; + return MakeFailure("unable to parse; invalid token \"" + Character() + "\""); + } + } + + /// Parses the specified input. Returns a failure state if parsing failed. + public static fsResult Parse(string input, out fsData data) { + if ( string.IsNullOrEmpty(input) ) { + data = default(fsData); + return fsResult.Fail("No input"); + } + + var context = new fsJsonParser(input); + return context.RunParse(out data); + } + + /// Helper method for Parse that does not allow the error information to be recovered. + public static fsData Parse(string input) { + fsData data; + Parse(input, out data).AssertSuccess(); + return data; + } + + private fsJsonParser(string input) { + _input = input; + _start = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs.meta new file mode 100644 index 0000000..c00cb2b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonParser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1deb9a1c9eedbea4e953ba28be392351 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs new file mode 100644 index 0000000..bc55dbb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs @@ -0,0 +1,275 @@ +using System; +using System.Globalization; +using System.IO; +using System.Text; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + public static class fsJsonPrinter + { + + /// Inserts the given number of indents into the builder. + private static void InsertSpacing(TextWriter stream, int count) { + for ( int i = 0; i < count; ++i ) { + stream.Write(" "); + } + } + + /// Escapes a string. + private static string EscapeString(string str) { + + // Escaping a string is pretty allocation heavy, so we try hard to not do it. + bool needsEscape = false; + for ( int i = 0; i < str.Length; ++i ) { + char c = str[i]; + + // unicode code point + int intChar = Convert.ToInt32(c); + if ( intChar < 0 || intChar > 127 ) { + needsEscape = true; + break; + } + + // standard escape character + switch ( c ) { + case '"': + case '\\': + case '\a': + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + case '\0': + needsEscape = true; + break; + } + + if ( needsEscape ) { + break; + } + } + + if ( needsEscape == false ) { + return str; + } + + + StringBuilder result = new StringBuilder(); + + for ( int i = 0; i < str.Length; ++i ) { + char c = str[i]; + + // unicode code point + int intChar = Convert.ToInt32(c); + if ( intChar < 0 || intChar > 127 ) { + result.Append(string.Format("\\u{0:x4} ", intChar).Trim()); + continue; + } + + // standard escape character + switch ( c ) { + case '"': result.Append("\\\""); continue; + case '\\': result.Append(@"\\"); continue; + case '\a': result.Append(@"\a"); continue; + case '\b': result.Append(@"\b"); continue; + case '\f': result.Append(@"\f"); continue; + case '\n': result.Append(@"\n"); continue; + case '\r': result.Append(@"\r"); continue; + case '\t': result.Append(@"\t"); continue; + case '\0': result.Append(@"\0"); continue; + } + + // no escaping needed + result.Append(c); + } + return result.ToString(); + } + + private static void BuildCompressedString(fsData data, TextWriter stream) { + switch ( data.Type ) { + case fsDataType.Null: + stream.Write("null"); + break; + + case fsDataType.Boolean: + if ( data.AsBool ) stream.Write("true"); + else stream.Write("false"); + break; + + case fsDataType.Double: + // doubles must *always* include a decimal + stream.Write(ConvertDoubleToString(data.AsDouble)); + break; + + case fsDataType.Int64: + stream.Write(data.AsInt64); + break; + + case fsDataType.String: + stream.Write('"'); + stream.Write(EscapeString(data.AsString)); + stream.Write('"'); + break; + + case fsDataType.Object: { + stream.Write('{'); + bool comma = false; + foreach ( var entry in data.AsDictionary ) { + if ( comma ) stream.Write(','); + comma = true; + stream.Write('"'); + stream.Write(entry.Key); + stream.Write('"'); + stream.Write(":"); + BuildCompressedString(entry.Value, stream); + } + stream.Write('}'); + break; + } + + case fsDataType.Array: { + stream.Write('['); + bool comma = false; + foreach ( var entry in data.AsList ) { + if ( comma ) stream.Write(','); + comma = true; + BuildCompressedString(entry, stream); + } + stream.Write(']'); + break; + } + } + } + + /// Formats this data into the given builder. + private static void BuildPrettyString(fsData data, TextWriter stream, int depth) { + switch ( data.Type ) { + case fsDataType.Null: + stream.Write("null"); + break; + + case fsDataType.Boolean: + if ( data.AsBool ) stream.Write("true"); + else stream.Write("false"); + break; + + case fsDataType.Double: + stream.Write(ConvertDoubleToString(data.AsDouble)); + break; + + case fsDataType.Int64: + stream.Write(data.AsInt64); + break; + + + case fsDataType.String: + stream.Write('"'); + stream.Write(EscapeString(data.AsString)); + stream.Write('"'); + break; + + case fsDataType.Object: { + stream.Write('{'); + stream.WriteLine(); + bool comma = false; + foreach ( var entry in data.AsDictionary ) { + if ( comma ) { + stream.Write(','); + stream.WriteLine(); + } + comma = true; + InsertSpacing(stream, depth + 1); + stream.Write('"'); + stream.Write(entry.Key); + stream.Write('"'); + stream.Write(": "); + BuildPrettyString(entry.Value, stream, depth + 1); + } + stream.WriteLine(); + InsertSpacing(stream, depth); + stream.Write('}'); + break; + } + + case fsDataType.Array: + // special case for empty lists; we don't put an empty line between the brackets + if ( data.AsList.Count == 0 ) { + stream.Write("[]"); + } else { + bool comma = false; + + stream.Write('['); + stream.WriteLine(); + foreach ( var entry in data.AsList ) { + if ( comma ) { + stream.Write(','); + stream.WriteLine(); + } + comma = true; + InsertSpacing(stream, depth + 1); + BuildPrettyString(entry, stream, depth + 1); + } + stream.WriteLine(); + InsertSpacing(stream, depth); + stream.Write(']'); + } + break; + } + } + + /// Returns fsData to json pretty or not + public static string ToJson(fsData data, bool pretty) { + if ( pretty ) { return PrettyJson(data); } + return CompressedJson(data); + } + + /// Writes the pretty JSON output data to the given stream. + public static void PrettyJson(fsData data, TextWriter outputStream) { + BuildPrettyString(data, outputStream, 0); + } + + /// Returns the data in a pretty printed JSON format. + public static string PrettyJson(fsData data) { + var sb = new StringBuilder(); + using ( var writer = new StringWriter(sb) ) { + BuildPrettyString(data, writer, 0); + return sb.ToString(); + } + } + + /// Writes the compressed JSON output data to the given stream. + public static void CompressedJson(fsData data, StreamWriter outputStream) { + BuildCompressedString(data, outputStream); + } + + /// Returns the data in a relatively compressed JSON format. + public static string CompressedJson(fsData data) { + var sb = new StringBuilder(); + using ( var writer = new StringWriter(sb) ) { + BuildCompressedString(data, writer); + return sb.ToString(); + } + } + + /// Utility method that converts a double to a string. + private static string ConvertDoubleToString(double d) { + if ( Double.IsInfinity(d) || Double.IsNaN(d) ) + return d.ToString(CultureInfo.InvariantCulture); + + string doubledString = d.ToString(CultureInfo.InvariantCulture); + + // NOTE/HACK: If we don't serialize with a period or an exponent, + // then the number will be deserialized as an Int64, not a double. + if ( doubledString.Contains(".") == false && + doubledString.Contains("e") == false && + doubledString.Contains("E") == false ) { + doubledString += ".0"; + } + + return doubledString; + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs.meta new file mode 100644 index 0000000..541f92e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsJsonPrinter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cdbea492eb6faf24799cb4d10cc56762 +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs new file mode 100644 index 0000000..1ac64b4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs @@ -0,0 +1,48 @@ +using System; +using System.Reflection; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// A field on a MetaType. + public class fsMetaProperty + { + + /// Internal handle to the reflected member. + public FieldInfo Field { get; private set; } + /// The serialized name of the property, as it should appear in JSON. + public string JsonName { get; private set; } + /// The type of value that is stored inside of the property. + public Type StorageType { get { return Field.FieldType; } } + /// The real name of the member info. + public string MemberName { get { return Field.Name; } } + /// Is the property read only? + public bool ReadOnly { get; private set; } + /// Is the property write only? + public bool WriteOnly { get; private set; } + /// Make instance automatically? + public bool AutoInstance { get; private set; } + /// Serialize as reference? + public bool AsReference { get; private set; } + + internal fsMetaProperty(FieldInfo field) { + this.Field = field; + var attr = Field.RTGetAttribute(true); + this.JsonName = attr != null && !string.IsNullOrEmpty(attr.Name) ? attr.Name : field.Name; + this.ReadOnly = Field.RTIsDefined(true); + this.WriteOnly = Field.RTIsDefined(true); + var autoInstanceAtt = StorageType.RTGetAttribute(true); + this.AutoInstance = autoInstanceAtt != null && autoInstanceAtt.makeInstance && !StorageType.IsAbstract; + this.AsReference = Field.RTIsDefined(true); + } + + /// Reads a value from the property that this MetaProperty represents, using the given object instance as the context. + public object Read(object context) { + return Field.GetValue(context); + } + + /// Writes a value to the property that this MetaProperty represents, using given object instance as the context. + public void Write(object context, object value) { + Field.SetValue(context, value); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs.meta new file mode 100644 index 0000000..0b56cdc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d121eeff08701d442900f21e5ef0736e +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs new file mode 100644 index 0000000..65190d8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// MetaType contains metadata about a type. This is used by the reflection serializer. + public class fsMetaType + { + + private static Dictionary _metaTypes = new Dictionary(); + private static Dictionary _defaultInstances = new Dictionary(); + + /// Return MetaType + public static fsMetaType Get(Type type) { + fsMetaType metaType; + if ( _metaTypes.TryGetValue(type, out metaType) == false ) { + metaType = new fsMetaType(type); + _metaTypes[type] = metaType; + } + + return metaType; + } + + /// Clears out the cached type results + public static void FlushMem() { + _metaTypes = new Dictionary(); + _defaultInstances = new Dictionary(); + } + + ///---------------------------------------------------------------------------------------------- + + private delegate object ObjectGenerator(); + + private ObjectGenerator generator; + public Type reflectedType { get; private set; } + public fsMetaProperty[] Properties { get; private set; } + public bool DeserializeOverwriteRequest { get; private set; } + + ///---------------------------------------------------------------------------------------------- + + //... + private fsMetaType(Type reflectedType) { + this.reflectedType = reflectedType; + this.generator = GetGenerator(reflectedType); + + var properties = new List(); + CollectProperties(properties, reflectedType); + this.Properties = properties.ToArray(); + + //TODO: Use it? + // this.DeserializeOverwriteRequest = reflectedType.RTIsDefined(true); + } + + //... + static void CollectProperties(List properties, Type reflectedType) { + FieldInfo[] fields = reflectedType.RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var field = fields[i]; + + if ( field.DeclaringType != reflectedType ) { + continue; + } + + if ( CanSerializeField(field) ) { + properties.Add(new fsMetaProperty(field)); + } + } + + if ( reflectedType.BaseType != null ) { + CollectProperties(properties, reflectedType.BaseType); + } + } + + //... + public static bool CanSerializeField(FieldInfo field) { + + // We don't serialize static fields + if ( field.IsStatic ) { + return false; + } + + // We don't serialize delegates + if ( typeof(Delegate).IsAssignableFrom(field.FieldType) ) { + return false; + } + +#if !UNITY_EDITOR + if ( field.RTIsDefined(true) ) { + return false; + } +#endif + + // We don't serialize compiler generated fields. + if ( field.RTIsDefined(true) ) { + return false; + } + + // We don't serialize members annotated with any of the ignore serialize attributes + for ( var i = 0; i < fsGlobalConfig.IgnoreSerializeAttributes.Length; i++ ) { + if ( field.RTIsDefined(fsGlobalConfig.IgnoreSerializeAttributes[i], true) ) { + return false; + } + } + + if ( field.IsPublic ) { + return true; + } + + for ( var i = 0; i < fsGlobalConfig.SerializeAttributes.Length; i++ ) { + if ( field.RTIsDefined(fsGlobalConfig.SerializeAttributes[i], true) ) { + return true; + } + } + + return false; + } + + /// Create generator + static ObjectGenerator GetGenerator(Type reflectedType) { + + if ( reflectedType.IsInterface || reflectedType.IsAbstract ) { + return () => { throw new Exception("Cannot create an instance of an interface or abstract type for " + reflectedType); }; + } + + if ( typeof(UnityEngine.ScriptableObject).IsAssignableFrom(reflectedType) ) { + return () => { return UnityEngine.ScriptableObject.CreateInstance(reflectedType); }; + } + + if ( reflectedType.IsArray ) { + // we have to start with a size zero array otherwise it will have invalid data inside of it + return () => { return Array.CreateInstance(reflectedType.GetElementType(), 0); }; + } + + if ( reflectedType == typeof(string) ) { + return () => { return string.Empty; }; + } + + if ( reflectedType.IsValueType || reflectedType.RTIsDefined(true) || !HasDefaultConstructor(reflectedType) ) { + return () => { return System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(reflectedType); }; + } + + // var exp = Expression.Lambda>(Expression.New(reflectedType)).Compile(); + // return () => { return exp(); }; + + return () => { try { return Activator.CreateInstance(reflectedType, /*nonPublic:*/ true); } catch { return null; } }; + } + + //... + static bool HasDefaultConstructor(Type reflectedType) { + // arrays are considered to have a default constructor + if ( reflectedType.IsArray ) { + return true; + } + + // value types (ie, structs) always have a default constructor + if ( reflectedType.IsValueType ) { + return true; + } + + // consider private constructors as well + return reflectedType.RTGetDefaultConstructor() != null; + } + + ///---------------------------------------------------------------------------------------------- + + /// Returns a *cached* default instance of target type This is mostly used for comparing default serialization properties + public object GetDefaultInstance() { + object instance = null; + if ( _defaultInstances.TryGetValue(reflectedType, out instance) ) { + return instance; + } + return _defaultInstances[reflectedType] = CreateInstance(); + } + + /// Creates a new instance of the type that this metadata points back to. + public object CreateInstance() { + if ( generator != null ) { return generator(); } + throw new Exception("Cant create instance generator for " + reflectedType); + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs.meta new file mode 100644 index 0000000..07f2cb7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsMetaType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b6055c8d075412e4ea6162755a736ab1 +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs new file mode 100644 index 0000000..2807725 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs @@ -0,0 +1,69 @@ +using System; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + /// + /// + /// Enables injecting code before/after an object has been serialized. This is most + /// useful if you want to run the default serialization process but apply a pre/post + /// processing step. + /// + /// + /// Multiple object processors can be active at the same time. When running they are + /// called in a "nested" fashion - if we have processor1 and process2 added to the + /// serializer in that order (p1 then p2), then the execution order will be + /// p1#Before p2#Before /serialization/ p2#After p1#After. + /// + /// + public abstract class fsObjectProcessor + { + /// Is the processor interested in objects of the given type? + /// + /// The given type. + /// True if the processor should be applied, false otherwise. + public virtual bool CanProcess(Type type) { throw new NotImplementedException(); } + + /// + /// Called before serialization. + /// + /// The field/property type that is storing the instance. + /// The type of the instance. + public virtual void OnBeforeSerialize(Type storageType, object instance) { } + + /// + /// Called after serialization. + /// + /// The field/property type that is storing the instance. + /// The type of the instance. + /// The data that was serialized. + public virtual void OnAfterSerialize(Type storageType, object instance, ref fsData data) { } + + /// + /// Called before deserialization. + /// + /// The field/property type that is storing the instance. + /// The data that will be used for deserialization. + public virtual void OnBeforeDeserialize(Type storageType, ref fsData data) { } + + /// + /// Called before deserialization has begun but *after* the object instance has been created. This will get + /// invoked even if the user passed in an existing instance. + /// + /// + /// **IMPORTANT**: The actual instance that gets passed here is *not* guaranteed to be an a subtype of storageType, since + /// the value for instance is whatever the active converter returned for CreateInstance() - ie, some converters will return + /// dummy types in CreateInstance() if instance creation cannot be separated from deserialization (ie, KeyValuePair). + /// + /// The field/property type that is storing the instance. + /// The created object instance. No deserialization has been applied to it. + /// The data that will be used for deserialization. + public virtual void OnBeforeDeserializeAfterInstanceCreation(Type storageType, object instance, ref fsData data) { } + + /// + /// Called after deserialization. + /// + /// The field/property type that is storing the instance. + /// The type of the instance. + public virtual void OnAfterDeserialize(Type storageType, object instance) { } + } +} diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs.meta new file mode 100644 index 0000000..32a5123 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsObjectProcessor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b5f9a3782591e9d4bb9fe8200327f3ec +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs new file mode 100644 index 0000000..0a0cfa8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + /// The result of some sort of operation. A result is either successful or not, but if it is successful then there may be a set of warnings/messages associated with it. These warnings describe the performed error recovery operations. + public struct fsResult + { + + // We cache the empty string array so we can unify some collections processing code. + private static readonly string[] EmptyStringArray = { }; + + /// Is this result successful? + private bool _success; + + /// The warning or error messages associated with the result if any. + private List _messages; + + /// A successful result. + public static fsResult Success = new fsResult { _success = true }; + + /// Create a result that is successful but contains the given warning message. + public static fsResult Warn(string warning) { + return new fsResult + { + _success = true, + _messages = new List { warning } + }; + } + + /// Create a result that failed. + public static fsResult Fail(string warning) { + return new fsResult + { + _success = false, + _messages = new List { warning } + }; + } + + /// Adds a new message to this result. + public void AddMessage(string message) { + if ( _messages == null ) { _messages = new List(); } + _messages.Add(message); + } + + /// Adds only the messages from the other result into this result, ignoring the success/failure status of the other result. + public void AddMessages(fsResult result) { + if ( result._messages == null ) { return; } + if ( _messages == null ) { _messages = new List(); } + _messages.AddRange(result._messages); + } + + /// Merges the other result into this one. If the other result failed, then this one too will have failed. + fsResult Merge(fsResult other) { + // Copy success/messages over + _success = _success && other._success; + if ( other._messages != null ) { + if ( _messages == null ) _messages = new List(other._messages); + else _messages.AddRange(other._messages); + } + return this; + } + + /// Only use this as +=! + public static fsResult operator +(fsResult a, fsResult b) { + return a.Merge(b); + } + + /// Did this result fail? If so, you can see the reasons why in `RawMessages`. + public bool Failed { get { return _success == false; } } + + /// Was the result a success? Note that even successful operations may have warning messages (`RawMessages`) associated with them. + public bool Succeeded { get { return _success; } } + + /// Does this result have any warnings? This says nothing about if it failed or succeeded, just if it has warning messages associated with it. + public bool HasWarnings { get { return _messages != null && _messages.Any(); } } + + /// A simply utility method that will assert that this result is successful. If it is not, then an exception is thrown. + public fsResult AssertSuccess() { + if ( Failed ) { throw AsException; } + return this; + } + + /// A simple utility method that will assert that this result is successful and that there are no warning messages. This throws an exception if either of those asserts are false. + public fsResult AssertSuccessWithoutWarnings() { + if ( Failed || RawMessages.Any() ) { throw AsException; } + return this; + } + + /// Utility method to convert the result to an exception. This method is only defined is `Failed` returns true. + public Exception AsException { + get + { + if ( !Failed && !RawMessages.Any() ) throw new Exception("Only a failed result can be converted to an exception"); + return new Exception(FormattedMessages); + } + } + + public IEnumerable RawMessages { + get + { + if ( _messages != null ) { + return _messages; + } + return EmptyStringArray; + } + } + + public string FormattedMessages { + get + { + return string.Join(",\n", RawMessages.ToArray()); + } + } + + public override string ToString() { + return FormattedMessages; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs.meta new file mode 100644 index 0000000..1f5fecd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsResult.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9ce5d190483269b40bb75a3937f869bd +timeCreated: 1458897573 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs new file mode 100644 index 0000000..4ece07e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs @@ -0,0 +1,712 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ParadoxNotion.Serialization.FullSerializer.Internal; +using ParadoxNotion.Serialization.FullSerializer.Internal.DirectConverters; + +namespace ParadoxNotion.Serialization.FullSerializer +{ + + ///*Heavily* modified FullSerializer + public class fsSerializer + { + public const string KEY_OBJECT_REFERENCE = "$ref"; + public const string KEY_OBJECT_DEFINITION = "$id"; + public const string KEY_INSTANCE_TYPE = "$type"; + public const string KEY_VERSION = "$version"; + public const string KEY_CONTENT = "$content"; + + /// Returns true if the given key is a special keyword that full serializer uses to add additional metadata on top of the emitted JSON. + public static bool IsReservedKeyword(string key) { + switch ( key ) { + case ( KEY_OBJECT_REFERENCE ): return true; + case ( KEY_OBJECT_DEFINITION ): return true; + case ( KEY_INSTANCE_TYPE ): return true; + case ( KEY_VERSION ): return true; + case ( KEY_CONTENT ): return true; + } + return false; + } + + ///Irriversibly removes all meta data + public static void RemoveMetaData(ref fsData data) { + if ( data.IsDictionary ) { + data.AsDictionary.Remove(KEY_OBJECT_REFERENCE); + data.AsDictionary.Remove(KEY_OBJECT_DEFINITION); + data.AsDictionary.Remove(KEY_INSTANCE_TYPE); + data.AsDictionary.Remove(KEY_VERSION); + data.AsDictionary.Remove(KEY_CONTENT); + } + } + + /// Ensures that the data is a dictionary. If it is not, then it is wrapped inside of one. + private static void EnsureDictionary(ref fsData data) { + if ( data.IsDictionary == false ) { + var existingData = data.Clone(); + data.BecomeDictionary(); + data.AsDictionary[KEY_CONTENT] = existingData; + } + } + + private static bool IsObjectReference(fsData data) { + if ( data.IsDictionary == false ) return false; + return data.AsDictionary.ContainsKey(KEY_OBJECT_REFERENCE); + } + private static bool IsObjectDefinition(fsData data) { + if ( data.IsDictionary == false ) return false; + return data.AsDictionary.ContainsKey(KEY_OBJECT_DEFINITION); + } + private static bool IsVersioned(fsData data) { + if ( data.IsDictionary == false ) return false; + return data.AsDictionary.ContainsKey(KEY_VERSION); + } + private static bool IsTypeSpecified(fsData data) { + if ( data.IsDictionary == false ) return false; + return data.AsDictionary.ContainsKey(KEY_INSTANCE_TYPE); + } + private static bool IsWrappedData(fsData data) { + if ( data.IsDictionary == false ) return false; + return data.AsDictionary.ContainsKey(KEY_CONTENT); + } + + ///---------------------------------------------------------------------------------------------- + + private static void Invoke_OnBeforeSerialize(List processors, Type storageType, object instance) { + for ( int i = 0; i < processors.Count; ++i ) { + processors[i].OnBeforeSerialize(storageType, instance); + } + + //!!Call only on non-Unity objects, since they are called back anyways by Unity!! + if ( instance is UnityEngine.ISerializationCallbackReceiver && !( instance is UnityEngine.Object ) ) { + ( (UnityEngine.ISerializationCallbackReceiver)instance ).OnBeforeSerialize(); + } + } + private static void Invoke_OnAfterSerialize(List processors, Type storageType, object instance, ref fsData data) { + // We run the after calls in reverse order; this significantly reduces the interaction burden between + // multiple processors - it makes each one much more independent and ignorant of the other ones. + for ( int i = processors.Count - 1; i >= 0; --i ) { + processors[i].OnAfterSerialize(storageType, instance, ref data); + } + } + private static void Invoke_OnBeforeDeserialize(List processors, Type storageType, ref fsData data) { + for ( int i = 0; i < processors.Count; ++i ) { + processors[i].OnBeforeDeserialize(storageType, ref data); + } + } + private static void Invoke_OnBeforeDeserializeAfterInstanceCreation(List processors, Type storageType, object instance, ref fsData data) { + for ( int i = 0; i < processors.Count; ++i ) { + processors[i].OnBeforeDeserializeAfterInstanceCreation(storageType, instance, ref data); + } + } + + private static void Invoke_OnAfterDeserialize(List processors, Type storageType, object instance) { + for ( int i = processors.Count - 1; i >= 0; --i ) { + processors[i].OnAfterDeserialize(storageType, instance); + } + + //!!Call only on non-Unity objects, since they are called back anyways by Unity!! + if ( instance is UnityEngine.ISerializationCallbackReceiver && !( instance is UnityEngine.Object ) ) { + ( (UnityEngine.ISerializationCallbackReceiver)instance ).OnAfterDeserialize(); + } + } + + ///---------------------------------------------------------------------------------------------- + + /// This manages instance writing so that we do not write unnecessary $id fields. We only need to write out an $id field when there is a corresponding $ref field. This is able to write $id references lazily because the fsData instance is not actually written out to text until we have entirely finished serializing it. + internal class fsLazyCycleDefinitionWriter + { + private Dictionary _pendingDefinitions = new Dictionary(); + private HashSet _references = new HashSet(); + + public void WriteDefinition(int id, fsData data) { + if ( _references.Contains(id) ) { + EnsureDictionary(ref data); + data.AsDictionary[KEY_OBJECT_DEFINITION] = new fsData(id.ToString()); + } else { + _pendingDefinitions[id] = data; + } + } + + public void WriteReference(int id, Dictionary dict) { + fsData data; + if ( _pendingDefinitions.TryGetValue(id, out data) ) { + EnsureDictionary(ref data); + data.AsDictionary[KEY_OBJECT_DEFINITION] = new fsData(id.ToString()); + _pendingDefinitions.Remove(id); + } else { _references.Add(id); } + + // Write the reference + dict[KEY_OBJECT_REFERENCE] = new fsData(id.ToString()); + } + + public void Clear() { + _pendingDefinitions.Clear(); + _references.Clear(); + } + } + + /// Converter type to converter instance lookup table. This could likely be stored inside of _cachedConverters, but there is a semantic difference because _cachedConverters goes from serialized type to converter. + private Dictionary _cachedOverrideConverterInstances; + /// A cache from type to it's converter. + private Dictionary _cachedConverters; + /// Converters that can be used for type registration. + private readonly List _availableConverters; + /// Direct converters (optimized _converters). We use these so we don't have to perform a scan through every item in _converters and can instead just do an O(1) lookup. This is potentially important to perf when there are a ton of direct converters. + private readonly Dictionary _availableDirectConverters; + + /// Processors that are available. + private readonly List _processors; + /// A cache from type to the set of processors that are interested in it. + private Dictionary> _cachedProcessors; + + /// Reference manager for cycle detection. + private fsCyclicReferenceManager _references; + private fsLazyCycleDefinitionWriter _lazyReferenceWriter; + /// Collectors get callbacks on child serialization/deserialization + private Stack _collectors; + /// Collector collection child depth (local to each collector) + private int _collectableDepth; + + /// A UnityObject references database for serialization/deserialization + public List ReferencesDatabase { get; set; } + /// Ignore cycle references? //TODO: Refactor cycle references to avoid doing this. + public bool IgnoreSerializeCycleReferences { get; set; } + /// An event raised before an object has been serialized given the object + public event Action onBeforeObjectSerialized; + /// An event raised after an object has been serialized given the object and the serialization data + public event Action onAfterObjectSerialized; + + + //... + public fsSerializer() { + _cachedOverrideConverterInstances = new Dictionary(); + _cachedConverters = new Dictionary(); + _cachedProcessors = new Dictionary>(); + + _references = new fsCyclicReferenceManager(); + _lazyReferenceWriter = new fsLazyCycleDefinitionWriter(); + _collectors = new Stack(); + + // note: The order here is important. Items at the beginning of this + // list will be used before converters at the end. Converters + // added via AddConverter() are added to the front of the list. + _availableConverters = new List + { + new fsUnityObjectConverter { Serializer = this }, + new fsTypeConverter { Serializer = this }, + new fsEnumConverter { Serializer = this }, + new fsPrimitiveConverter { Serializer = this }, + new fsArrayConverter { Serializer = this }, + new fsDictionaryConverter { Serializer = this }, + new fsListConverter { Serializer = this }, + new fsReflectedConverter { Serializer = this } + }; + _availableDirectConverters = new Dictionary(); + + _processors = new List(); + + //DirectConverters. Add manually for performance + AddConverter(new AnimationCurve_DirectConverter()); + AddConverter(new Bounds_DirectConverter()); + AddConverter(new GUIStyleState_DirectConverter()); + AddConverter(new GUIStyle_DirectConverter()); + AddConverter(new Gradient_DirectConverter()); + AddConverter(new Keyframe_DirectConverter()); + AddConverter(new LayerMask_DirectConverter()); + AddConverter(new RectOffset_DirectConverter()); + AddConverter(new Rect_DirectConverter()); + + AddConverter(new Vector2Int_DirectConverter()); + AddConverter(new Vector3Int_DirectConverter()); + } + + ///---------------------------------------------------------------------------------------------- + + //Cleanup cycle references. + //This is done to ensure that a problem in one serialization does not transfer to others. + public void PurgeTemporaryData() { + _references.Clear(); + _lazyReferenceWriter.Clear(); + _collectors.Clear(); + } + + /// Fetches all of the processors for the given type. + private List GetProcessors(Type type) { + List processors; + if ( _cachedProcessors.TryGetValue(type, out processors) ) { + return processors; + } + + // Check to see if the user has defined a custom processor for the type. If they + // have, then we don't need to scan through all of the processor to check which + // one can process the type; instead, we directly use the specified processor. + var attr = type.RTGetAttribute(true); + if ( attr != null && attr.Processor != null ) { + var processor = (fsObjectProcessor)Activator.CreateInstance(attr.Processor); + processors = new List(); + processors.Add(processor); + _cachedProcessors[type] = processors; + } else if ( _cachedProcessors.TryGetValue(type, out processors) == false ) { + processors = new List(); + + for ( int i = 0; i < _processors.Count; ++i ) { + var processor = _processors[i]; + if ( processor.CanProcess(type) ) { + processors.Add(processor); + } + } + + _cachedProcessors[type] = processors; + } + + return processors; + } + + /// Adds a new converter that can be used to customize how an object is serialized and deserialized. + public void AddConverter(fsBaseConverter converter) { + if ( converter.Serializer != null ) { + throw new InvalidOperationException("Cannot add a single converter instance to " + + "multiple fsConverters -- please construct a new instance for " + converter); + } + + if ( converter is fsDirectConverter ) { + var directConverter = (fsDirectConverter)converter; + _availableDirectConverters[directConverter.ModelType] = directConverter; + } else if ( converter is fsConverter ) { + _availableConverters.Insert(0, (fsConverter)converter); + } else { + throw new InvalidOperationException("Unable to add converter " + converter + + "; the type association strategy is unknown. Please use either " + + "fsDirectConverter or fsConverter as your base type."); + } + + converter.Serializer = this; + _cachedConverters = new Dictionary(); + } + + /// Fetches a converter that can serialize/deserialize the given type. + private fsBaseConverter GetConverter(Type type, Type overrideConverterType) { + + // Use an override converter type instead if that's what the user has requested. + if ( overrideConverterType != null ) { + fsBaseConverter overrideConverter; + if ( _cachedOverrideConverterInstances.TryGetValue(overrideConverterType, out overrideConverter) == false ) { + overrideConverter = (fsBaseConverter)Activator.CreateInstance(overrideConverterType); + overrideConverter.Serializer = this; + _cachedOverrideConverterInstances[overrideConverterType] = overrideConverter; + } + + return overrideConverter; + } + + // Try to lookup an existing converter. + fsBaseConverter converter; + if ( _cachedConverters.TryGetValue(type, out converter) ) { + return converter; + } + + // Check to see if the user has defined a custom converter for the type. If they + // have, then we don't need to scan through all of the converters to check which + // one can process the type; instead, we directly use the specified converter. + { + var attr = type.RTGetAttribute(true); + if ( attr != null && attr.Converter != null ) { + converter = (fsBaseConverter)Activator.CreateInstance(attr.Converter); + converter.Serializer = this; + return _cachedConverters[type] = converter; + } + } + + // Check for a [fsForward] attribute. + { + var attr = type.RTGetAttribute(true); + if ( attr != null ) { + converter = new fsForwardConverter(attr); + converter.Serializer = this; + return _cachedConverters[type] = converter; + } + } + + // No converter specified. Find match from general ones. + { + fsDirectConverter directConverter; + if ( _availableDirectConverters.TryGetValue(type, out directConverter) ) { + return _cachedConverters[type] = directConverter; + } + + for ( var i = 0; i < _availableConverters.Count; i++ ) { + if ( _availableConverters[i].CanProcess(type) ) { + return _cachedConverters[type] = _availableConverters[i]; + } + } + } + + // No converter available + return _cachedConverters[type] = null; + } + + ///---------------------------------------------------------------------------------------------- + + /// Serialize the given value. + public fsResult TrySerialize(Type storageType, object instance, out fsData data) { + return TrySerialize(storageType, instance, out data, null); + } + + /// Serialize the given value. StorageType: field type. OverideConverter: optional override converter. Instance: the object instance. Data: the serialized state. + public fsResult TrySerialize(Type storageType, object instance, out fsData data, Type overrideConverterType) { + + var realType = instance == null ? storageType : instance.GetType(); + var processors = GetProcessors(realType); + Invoke_OnBeforeSerialize(processors, storageType, instance); + + // We always serialize null directly as null + if ( ReferenceEquals(instance, null) ) { + data = new fsData(); + Invoke_OnAfterSerialize(processors, storageType, instance, ref data); + return fsResult.Success; + } + + if ( onBeforeObjectSerialized != null ) { onBeforeObjectSerialized(instance); } + + fsResult result; + + try { + _references.Enter(); + result = Internal_Serialize(storageType, instance, out data, overrideConverterType); + } + + finally { if ( _references.Exit() ) { _lazyReferenceWriter.Clear(); } } + + //versioning + TrySerializeVersioning(instance, ref data); + + //invoke processors + Invoke_OnAfterSerialize(processors, storageType, instance, ref data); + + if ( onAfterObjectSerialized != null ) { onAfterObjectSerialized(instance, data); } + + return result; + } + + //... + fsResult Internal_Serialize(Type storageType, object instance, out fsData data, Type overrideConverterType) { + + var instanceType = instance.GetType(); + var instanceTypeConverter = GetConverter(instanceType, overrideConverterType); + if ( instanceTypeConverter == null ) { + data = new fsData(); + // return fsResult.Warn(string.Format("No converter for {0}", instanceType)); + return fsResult.Success; + } + + var needsCycleSupport = instanceType.RTIsDefined(true); + if ( needsCycleSupport ) { + // We've already serialized this object instance (or it is pending higher up on the call stack). + // Just serialize a reference to it to escape the cycle. + if ( _references.IsReference(instance) ) { + data = fsData.CreateDictionary(); + _lazyReferenceWriter.WriteReference(_references.GetReferenceId(instance), data.AsDictionary); + return fsResult.Success; + } + + // Mark inside the object graph that we've serialized the instance. We do this *before* + // serialization so that if we get back into this function recursively, it'll already + // be marked and we can handle the cycle properly without going into an infinite loop. + _references.MarkSerialized(instance); + } + + //push collector + TryPush(instance); + + // Serialize the instance with it's actual instance type, not storageType. + var serializeResult = instanceTypeConverter.TrySerialize(instance, out data, instanceType); + + //pop collector + TryPop(instance); + + if ( serializeResult.Failed ) { + return serializeResult; + } + + // Do we need to add type information? If the field type and the instance type are different. + if ( storageType != instanceType && GetConverter(storageType, overrideConverterType).RequestInheritanceSupport(storageType) ) { + EnsureDictionary(ref data); + data.AsDictionary[KEY_INSTANCE_TYPE] = new fsData(instanceType.FullName); + } + + if ( needsCycleSupport ) { + _lazyReferenceWriter.WriteDefinition(_references.GetReferenceId(instance), data); + } + + return serializeResult; + } + + + ///---------------------------------------------------------------------------------------------- + + /// Attempts to deserialize a value from a serialized state. + public fsResult TryDeserialize(fsData data, Type storageType, ref object result) { + return TryDeserialize(data, storageType, ref result, null); + } + + /// Attempts to deserialize a value from a serialized state. + public fsResult TryDeserialize(fsData data, Type storageType, ref object result, Type overrideConverterType) { + + if ( data.IsNull ) { + result = null; + var processors = GetProcessors(storageType); + Invoke_OnBeforeDeserialize(processors, storageType, ref data); + Invoke_OnAfterDeserialize(processors, storageType, null); + return fsResult.Success; + } + + try { + _references.Enter(); + return Internal_Deserialize(data, storageType, ref result, overrideConverterType); + } + + finally { _references.Exit(); } + } + + //... + fsResult Internal_Deserialize(fsData data, Type storageType, ref object result, Type overrideConverterType) { + //$ref encountered. Do before inheritance. + if ( IsObjectReference(data) ) { + int refId = int.Parse(data.AsDictionary[KEY_OBJECT_REFERENCE].AsString); + result = _references.GetReferenceObject(refId); + return fsResult.Success; + } + + var deserializeResult = fsResult.Success; + var objectType = result != null ? result.GetType() : storageType; + Type forwardMigrationPreviousType = null; + + // Gather processors and call OnBeforeDeserialize before anything + var processors = GetProcessors(objectType); + Invoke_OnBeforeDeserialize(processors, objectType, ref data); + + // If the serialized state contains type information, then we need to make sure to update our + // objectType and data to the proper values so that when we construct an object instance later + // and run deserialization we run it on the proper type. + // $type + if ( IsTypeSpecified(data) ) { + var typeNameData = data.AsDictionary[KEY_INSTANCE_TYPE]; + + do { + if ( !typeNameData.IsString ) { + deserializeResult.AddMessage(string.Format("{0} value must be a string", KEY_INSTANCE_TYPE)); + break; + } + + var typeName = typeNameData.AsString; + var type = ReflectionTools.GetType(typeName, storageType); + + if ( type == null ) { + deserializeResult.AddMessage(string.Format("{0} type can not be resolved", typeName)); + break; + } + + var migrateAtt = type.RTGetAttribute(true); + if ( migrateAtt != null ) { + // if migrating from another type, save the original type and mutate the current type + if ( !typeof(IMigratable).IsAssignableFrom(migrateAtt.targetType) ) { + throw new Exception("TargetType of [fsMigrateToAttribute] must implement IMigratable with T being the target type"); + } + forwardMigrationPreviousType = type; + if ( type.IsGenericType && migrateAtt.targetType.IsGenericTypeDefinition ) { + type = migrateAtt.targetType.MakeGenericType(type.GetGenericArguments()); + } else { type = migrateAtt.targetType; } + } + + if ( !storageType.IsAssignableFrom(type) ) { + deserializeResult.AddMessage(string.Format("Ignoring type specifier. Field or type {0} can't hold and instance of type {1}", storageType, type)); + break; + } + + objectType = type; + + } while ( false ); + } + + var converter = GetConverter(objectType, overrideConverterType); + if ( converter == null ) { + return fsResult.Warn(string.Format("No Converter available for {0}", objectType)); + } + + // Construct an object instance if we don't have one already using actual objectType + if ( ReferenceEquals(result, null) || result.GetType() != objectType ) { + result = converter.CreateInstance(data, objectType); + } + + // if migrating from another type, do migration now. + if ( forwardMigrationPreviousType != null ) { + //we deserialize versioning first on the old model type and then do migration + var previousInstance = GetConverter(forwardMigrationPreviousType, null).CreateInstance(data, forwardMigrationPreviousType); + TryDeserializeVersioning(ref previousInstance, ref data); + TryDeserializeMigration(ref result, ref data, forwardMigrationPreviousType, previousInstance); + } else { + // if not a forward migration, try deserialize versioning as normal + TryDeserializeVersioning(ref result, ref data); + } + + // invoke callback with objectType + Invoke_OnBeforeDeserializeAfterInstanceCreation(processors, objectType, result, ref data); + + // $id + if ( IsObjectDefinition(data) ) { + var sourceId = int.Parse(data.AsDictionary[KEY_OBJECT_DEFINITION].AsString); + _references.AddReferenceWithId(sourceId, result); + } + + // $content + if ( IsWrappedData(data) ) { + data = data.AsDictionary[KEY_CONTENT]; + } + + // push collector + TryPush(result); + + // must pass actual objectType + deserializeResult += converter.TryDeserialize(data, ref result, objectType); + if ( deserializeResult.Succeeded ) { Invoke_OnAfterDeserialize(processors, objectType, result); } + + // pop collector + TryPop(result); + + return deserializeResult; + } + + ///---------------------------------------------------------------------------------------------- + + ///Push collector to stack + void TryPush(object o) { + + if ( o is ISerializationCollectable ) { + _collectableDepth++; + if ( _collectors.Count > 0 ) { + _collectors.Peek().OnCollect((ISerializationCollectable)o, _collectableDepth); + } + } + + //collector is also collectable, so we start at depth 0 + if ( o is ISerializationCollector ) { + _collectableDepth = -1; + var parent = _collectors.Count > 0 ? _collectors.Peek() : null; + _collectors.Push((ISerializationCollector)o); + ( (ISerializationCollector)o ).OnPush(parent); + } + } + + ///Pop collector in stack and/or collect object + void TryPop(object o) { + + //collector is also collectable, so we collect at depth 0 + if ( o is ISerializationCollector ) { + _collectableDepth = 0; + _collectors.Pop().OnPop(_collectors.Count > 0 ? _collectors.Peek() : null); + } + + if ( o is ISerializationCollectable ) { + _collectableDepth--; + } + } + + ///---------------------------------------------------------------------------------------------- + //This is an alternative idea with collection happening AFTER serialization/deserialization + //There can probably be two callbacks OnBefore and OnAfter? + // ///Push collector to stack + // void TryPush(object o) { + // if ( o is ISerializationCollector ) { + // _collectableDepth = -1; + // var parent = _collectors.Count > 0 ? _collectors.Peek() : null; + // _collectors.Push((ISerializationCollector)o); + // ( (ISerializationCollector)o ).OnPush(parent); + // } + + // //collector is also collectable, so we start at depth 0 + // if ( o is ISerializationCollectable ) { + // _collectableDepth++; + + // } + // } + + // ///Pop collector in stack and/or collect object + // void TryPop(object o) { + // if ( o is ISerializationCollector ) { + // _collectableDepth = 1; + // _collectors.Pop().OnPop(_collectors.Count > 0 ? _collectors.Peek() : null); + // } + + // //collector is also collectable, so we collect at depth 0 + // if ( o is ISerializationCollectable ) { + // _collectableDepth--; + // if ( _collectors.Count > 0 ) { + // _collectors.Peek().OnCollect((ISerializationCollectable)o, _collectableDepth); + // } + // } + // } + ///---------------------------------------------------------------------------------------------- + + ///Version migration serialize + void TrySerializeVersioning(object currentInstance, ref fsData data) { + if ( currentInstance is IMigratable && data.IsDictionary ) { + var att = currentInstance.GetType().RTGetAttribute(true); + if ( att != null && att.previousTypes.Length > 0 ) { + data.AsDictionary[KEY_VERSION] = new fsData(att.previousTypes.Length); + } + } + } + + ///Version migration deserialize + void TryDeserializeVersioning(ref object currentInstance, ref fsData currentData) { + if ( currentInstance is IMigratable && currentData.IsDictionary ) { + + var instanceType = currentInstance.GetType(); + fsData serializedVersionData; + int serializedVersion = 0; + if ( currentData.AsDictionary.TryGetValue(KEY_VERSION, out serializedVersionData) ) { + serializedVersion = (int)serializedVersionData.AsInt64; + } + + var att = instanceType.RTGetAttribute(true); + if ( att != null ) { + var previousTypes = att.previousTypes; + var currentVersion = previousTypes.Length; + + if ( currentVersion > serializedVersion ) { + var previousType = previousTypes[serializedVersion]; + TryDeserializeMigration(ref currentInstance, ref currentData, previousType, null); + } + } + } + } + + ///Create instance of previous type, deserialize it with previous data and call Migrate to currentInstance + void TryDeserializeMigration(ref object currentInstance, ref fsData currentData, Type previousType, object previousInstance) { + if ( currentInstance is IMigratable && currentData.IsDictionary ) { + + var instanceType = currentInstance.GetType(); + if ( instanceType.IsGenericType && previousType.IsGenericTypeDefinition ) { + previousType = previousType.MakeGenericType(instanceType.GetGenericArguments()); + } + + System.Reflection.InterfaceMapping interfaceMap; + try { interfaceMap = instanceType.GetInterfaceMap(typeof(IMigratable<>).MakeGenericType(previousType)); } + catch ( Exception e ) { throw new Exception("Type must implement IMigratable for each one of the types specified in the [fsMigrateVersionsAttribute] or [fsMigrateToAttribute]\n" + e.Message); } + var migrateMethod = interfaceMap.InterfaceMethods.First(m => m.Name == nameof(IMigratable.Migrate)); + + //create previous instance and deserialize through converter only + var converter = GetConverter(previousType, null); + if ( previousInstance == null ) { previousInstance = converter.CreateInstance(currentData, previousType); } + converter.TryDeserialize(currentData, ref previousInstance, previousType).AssertSuccess(); + migrateMethod.Invoke(currentInstance, ReflectionTools.SingleTempArgsArray(previousInstance)); + + fsData serializedData; + //we serialize the previous instance then remove all serialization keys from the original data that will + //be used for deserialization on the current instance down later. This way we dont overwrite the migration. + converter.TrySerialize(previousInstance, out serializedData, previousType).AssertSuccess(); + foreach ( var pair in serializedData.AsDictionary ) { currentData.AsDictionary.Remove(pair.Key); } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs.meta new file mode 100644 index 0000000..98acbe1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/Full Serializer/fsSerializer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e14172521dbad7d49899b998d378516c +timeCreated: 1458897574 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs new file mode 100644 index 0000000..3d5ef6c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs @@ -0,0 +1,10 @@ +namespace ParadoxNotion.Serialization +{ + + //an interface used along with fsRecoveryProcessor to handle missing types and their recovery + public interface IMissingRecoverable + { + string missingType { get; set; } + string recoveryState { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs.meta new file mode 100644 index 0000000..5bd346a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/IMissingRecoverable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6ca05c8a629ef6247b4f73b5161c72dd +timeCreated: 1477153143 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs new file mode 100644 index 0000000..75f09cb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs @@ -0,0 +1,11 @@ +using System.Reflection; + +namespace ParadoxNotion.Serialization +{ + + public interface ISerializedMethodBaseInfo : ISerializedReflectedInfo + { + MethodBase GetMethodBase(); + bool HasChanged(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs.meta new file mode 100644 index 0000000..2c10054 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedMethodBaseInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f424724cdc8415a4ab4500952433dbee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs new file mode 100644 index 0000000..2334a08 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs @@ -0,0 +1,12 @@ +using System.Reflection; + +namespace ParadoxNotion.Serialization +{ + + ///Interface between Serialized_X_Info + public interface ISerializedReflectedInfo : UnityEngine.ISerializationCallbackReceiver + { + MemberInfo AsMemberInfo(); + string AsString(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs.meta new file mode 100644 index 0000000..78755d4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/ISerializedReflectedInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b56f7b3b9108d804db31cc1d3200d4e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs new file mode 100644 index 0000000..ccc9c57 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using ParadoxNotion.Serialization.FullSerializer; +using ParadoxNotion.Serialization.FullSerializer.Internal; +using ParadoxNotion.Services; + +namespace ParadoxNotion.Serialization +{ + + ///High-Level API. Serializes/Deserializes to/from JSON with a heavily modified 'FullSerializer' + public static class JSONSerializer + { + + private static object serializerLock; + private static fsSerializer serializer; + private static Dictionary dataCache; + + static JSONSerializer() { + serializerLock = new object(); + FlushMem(); + } + + public static void FlushMem() { + serializer = new fsSerializer(); + dataCache = new Dictionary(); + fsMetaType.FlushMem(); + } + +#if UNITY_2019_3_OR_NEWER + //for "no domain reload" + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] + static void __FlushDataCache() { dataCache = new Dictionary(); } +#endif + + ///---------------------------------------------------------------------------------------------- + + ///Serialize to json + public static string Serialize(Type type, object instance, List references = null, bool pretyJson = false) { + + lock ( serializerLock ) { + + serializer.PurgeTemporaryData(); + serializer.ReferencesDatabase = references; + + fsData data; + //We override the UnityObject converter if we serialize a UnityObject directly. + //UnityObject converter will still be used for every serialized property found within the object though. + var overrideConverterType = typeof(UnityEngine.Object).RTIsAssignableFrom(type) ? typeof(fsReflectedConverter) : null; + var r = serializer.TrySerialize(type, instance, out data, overrideConverterType).AssertSuccess(); + if ( r.HasWarnings ) { Logger.LogWarning(r.ToString(), "Serialization"); } + + serializer.ReferencesDatabase = null; + + var json = fsJsonPrinter.ToJson(data, pretyJson); + + if ( Threader.applicationIsPlaying || UnityEngine.Application.isPlaying ) { + dataCache[json] = data; + } + + return json; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Deserialize from json + public static T Deserialize(string json, List references = null) { + return (T)Internal_Deserialize(typeof(T), json, references, null); + } + + ///Deserialize from json + public static object Deserialize(Type type, string json, List references = null) { + return Internal_Deserialize(type, json, references, null); + } + + ///Deserialize overwrite from json + public static T TryDeserializeOverwrite(T instance, string json, List references = null) where T : class { + return (T)Internal_Deserialize(typeof(T), json, references, instance); + } + + ///Deserialize overwrite from json + public static object TryDeserializeOverwrite(object instance, string json, List references = null) { + return Internal_Deserialize(instance.GetType(), json, references, instance); + } + + ///Deserialize from json + static object Internal_Deserialize(Type type, string json, List references, object instance) { + + lock ( serializerLock ) { + + serializer.PurgeTemporaryData(); + + fsData data = null; + + if ( Threader.applicationIsPlaying ) { + //caching is useful only in playmode realy since editing is finalized + if ( !dataCache.TryGetValue(json, out data) ) { + dataCache[json] = data = fsJsonParser.Parse(json); + } + } else { + //in editor we just parse it + data = fsJsonParser.Parse(json); + } + + serializer.ReferencesDatabase = references; + //We use Reflected converter if we deserialize overwrite a UnityObject directly. + //UnityObject converter will still be used for every serialized property found within the object though. + var overrideConverterType = instance is UnityEngine.Object ? typeof(fsReflectedConverter) : null; + var r = serializer.TryDeserialize(data, type, ref instance, overrideConverterType).AssertSuccess(); + if ( r.HasWarnings ) { Logger.LogWarning(r.ToString(), "Serialization"); } + + serializer.ReferencesDatabase = null; + + return instance; + } + } + + ///Serialize instance without cycle refs support and execute call per object serialized within along with it's serialization data + public static void SerializeAndExecuteNoCycles(Type type, object instance, Action call) { + lock ( serializerLock ) { + serializer.IgnoreSerializeCycleReferences = true; + serializer.onAfterObjectSerialized += call; + try { Serialize(type, instance); } + finally { + serializer.IgnoreSerializeCycleReferences = false; + serializer.onAfterObjectSerialized -= call; + } + } + } + + ///Serialize instance without cycle refs support and execute before/after call per object serialized within along with it's serialization data + public static void SerializeAndExecuteNoCycles(Type type, object instance, Action beforeCall, Action afterCall) { + lock ( serializerLock ) { + serializer.IgnoreSerializeCycleReferences = true; + serializer.onBeforeObjectSerialized += beforeCall; + serializer.onAfterObjectSerialized += afterCall; + try { Serialize(type, instance); } + finally { + serializer.IgnoreSerializeCycleReferences = false; + serializer.onBeforeObjectSerialized -= beforeCall; + serializer.onAfterObjectSerialized -= afterCall; + } + } + } + + ///Deep clone an object + public static T Clone(T original) { + return (T)Clone((object)original); + } + + ///Deep clone an object + public static object Clone(object original) { + var type = original.GetType(); + var references = new List(); + var json = Serialize(type, original, references); + return Deserialize(type, json, references); + } + + ///Serialize source and overwrites target + public static void CopySerialized(object source, object target) { + var type = source.GetType(); + var references = new List(); + var json = Serialize(type, source, references); + TryDeserializeOverwrite(target, json, references); + } + + ///Writes json to prety json in a temp file and opens it + public static void ShowData(string json, string fileName = "") { + var prettyJson = PrettifyJson(json); + var dataPath = Path.GetTempPath() + ( string.IsNullOrEmpty(fileName) ? Guid.NewGuid().ToString() : fileName ) + ".json"; + File.WriteAllText(dataPath, prettyJson); + Process.Start(dataPath); + } + + ///Prettify existing json string + public static string PrettifyJson(string json) { + return fsJsonPrinter.PrettyJson(fsJsonParser.Parse(json)); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs.meta new file mode 100644 index 0000000..4a881f7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/JSONSerializer.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 02a158e91ef73f546b136893dbb80bcb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs new file mode 100644 index 0000000..9d1749d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; + +namespace ParadoxNotion.Serialization +{ + [System.Serializable] + ///A pair of JSON and UnityObject references + sealed public class SerializationPair + { + public string _json; + public List _references; + public SerializationPair() { _references = new List(); } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs.meta new file mode 100644 index 0000000..90b912d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializationPair.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f69a5b0f31ce71498095dde47406e45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs new file mode 100644 index 0000000..5d560d9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs @@ -0,0 +1,89 @@ +using System; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace ParadoxNotion.Serialization +{ + [Serializable] + public class SerializedConstructorInfo : ISerializedMethodBaseInfo + { + + [SerializeField] + private string _baseInfo; + [SerializeField] + private string _paramsInfo; + + [NonSerialized] + private ConstructorInfo _constructor; + [NonSerialized] + private bool _hasChanged; + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + _hasChanged = false; + if ( _constructor != null ) { + _baseInfo = _constructor.RTReflectedOrDeclaredType().FullName + "|" + "$Constructor"; + _paramsInfo = string.Join("|", _constructor.GetParameters().Select(p => p.ParameterType.FullName).ToArray()); + } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + _hasChanged = false; + + if ( _baseInfo == null ) { + return; + } + + var split = _baseInfo.Split('|'); + var type = ReflectionTools.GetType(split[0], true); + if ( type == null ) { + _constructor = null; + return; + } + + var paramTypeNames = string.IsNullOrEmpty(_paramsInfo) ? null : _paramsInfo.Split('|'); + var parameterTypes = paramTypeNames != null ? new Type[paramTypeNames.Length] : Type.EmptyTypes; + var paramsFail = false; + if ( paramTypeNames != null ) { + for ( var i = 0; i < paramTypeNames.Length; i++ ) { + var pType = ReflectionTools.GetType(paramTypeNames[i], true); + if ( pType == null ) { + paramsFail = true; + break; + } + parameterTypes[i] = pType; + } + } + + if ( !paramsFail ) { + _constructor = type.RTGetConstructor(parameterTypes); + } + + //fallback + if ( _constructor == null ) { + _hasChanged = true; + var constructors = type.RTGetConstructors(); + _constructor = constructors.FirstOrDefault(c => c.GetParameters().Length == parameterTypes.Length); + if ( _constructor == null ) { _constructor = constructors.FirstOrDefault(); } + } + } + + public SerializedConstructorInfo() { } + public SerializedConstructorInfo(ConstructorInfo constructor) { + _hasChanged = false; + _constructor = constructor; + } + + public MemberInfo AsMemberInfo() { return _constructor; } + public MethodBase GetMethodBase() { return _constructor; } + public bool HasChanged() { return _hasChanged; } + public string AsString() { return string.Format("{0} ({1})", _baseInfo.Replace("|", "."), _paramsInfo.Replace("|", ", ")); } + public override string ToString() { return AsString(); } + + //operator + public static implicit operator ConstructorInfo(SerializedConstructorInfo value) { + return value != null ? value._constructor : null; + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs.meta new file mode 100644 index 0000000..2024880 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedConstructorInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9d4eb787e02b4ea890a051ea4da9586a +timeCreated: 1494353948 \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs new file mode 100644 index 0000000..f99583a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs @@ -0,0 +1,52 @@ +using System; +using System.Reflection; +using UnityEngine; + +namespace ParadoxNotion.Serialization +{ + + [Serializable] + public class SerializedEventInfo : ISerializedReflectedInfo + { + + [SerializeField] + private string _baseInfo; + + [NonSerialized] + private EventInfo _event; + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( _event != null ) { + _baseInfo = string.Format("{0}|{1}", _event.RTReflectedOrDeclaredType().FullName, _event.Name); + } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + if ( _baseInfo == null ) { + return; + } + var split = _baseInfo.Split('|'); + var type = ReflectionTools.GetType(split[0], true); + if ( type == null ) { + _event = null; + return; + } + var name = split[1]; + _event = type.RTGetEvent(name); + } + + public SerializedEventInfo() { } + public SerializedEventInfo(EventInfo info) { + _event = info; + } + + public MemberInfo AsMemberInfo() { return _event; } + public string AsString() { return _baseInfo != null ? _baseInfo.Replace("|", ".") : null; } + public override string ToString() { return AsString(); } + + //operator + public static implicit operator EventInfo(SerializedEventInfo value) { + return value != null ? value._event : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs.meta new file mode 100644 index 0000000..70697ea --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedEventInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e2891eb108bc184995a50765480ee87 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs new file mode 100644 index 0000000..30c9aa2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs @@ -0,0 +1,52 @@ +using System; +using System.Reflection; +using UnityEngine; + +namespace ParadoxNotion.Serialization +{ + + [Serializable] + public class SerializedFieldInfo : ISerializedReflectedInfo + { + + [SerializeField] + private string _baseInfo; + + [NonSerialized] + private FieldInfo _field; + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( _field != null ) { + _baseInfo = string.Format("{0}|{1}", _field.RTReflectedOrDeclaredType().FullName, _field.Name); + } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + if ( _baseInfo == null ) { + return; + } + var split = _baseInfo.Split('|'); + var type = ReflectionTools.GetType(split[0], true); + if ( type == null ) { + _field = null; + return; + } + var name = split[1]; + _field = type.RTGetField(name); + } + + public SerializedFieldInfo() { } + public SerializedFieldInfo(FieldInfo info) { + _field = info; + } + + public MemberInfo AsMemberInfo() { return _field; } + public string AsString() { return _baseInfo != null ? _baseInfo.Replace("|", ".") : "None"; } + public override string ToString() { return AsString(); } + + //operator + public static implicit operator FieldInfo(SerializedFieldInfo value) { + return value != null ? value._field : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs.meta new file mode 100644 index 0000000..6142bdc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedFieldInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a48507dc5ca5424c8f62917ade9caff +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs new file mode 100644 index 0000000..1dc19a6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs @@ -0,0 +1,124 @@ +using System; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace ParadoxNotion.Serialization +{ + + ///Serialized MethodInfo + [Serializable] + public class SerializedMethodInfo : ISerializedMethodBaseInfo + { + + [SerializeField] + private string _baseInfo; + [SerializeField] + private string _paramsInfo; + [SerializeField] + private string _genericArgumentsInfo; + + [NonSerialized] + private MethodInfo _method; + [NonSerialized] + private bool _hasChanged; + + ///serialize to strings info + void ISerializationCallbackReceiver.OnBeforeSerialize() { + _hasChanged = false; + if ( _method != null ) { + _baseInfo = string.Format("{0}|{1}|{2}", _method.RTReflectedOrDeclaredType().FullName, _method.Name, _method.ReturnType.FullName); + _paramsInfo = string.Join("|", _method.GetParameters().Select(p => p.ParameterType.FullName).ToArray()); + _genericArgumentsInfo = _method.IsGenericMethod ? string.Join("|", _method.RTGetGenericArguments().Select(a => a.FullName).ToArray()) : null; + } + } + + //deserialize from strings info + void ISerializationCallbackReceiver.OnAfterDeserialize() { + _hasChanged = false; + + if ( _baseInfo == null ) { + return; + } + + var split = _baseInfo.Split('|'); + var type = ReflectionTools.GetType(split[0], true); + if ( type == null ) { + _method = null; + return; + } + + var name = split[1]; + var returnType = split.Length >= 3 ? ReflectionTools.GetType(split[2], true) : null; + var isSerializedGeneric = !string.IsNullOrEmpty(_genericArgumentsInfo); + var paramTypeNames = string.IsNullOrEmpty(_paramsInfo) ? null : _paramsInfo.Split('|'); + var parameterTypes = paramTypeNames != null ? new Type[paramTypeNames.Length] : Type.EmptyTypes; + var paramsFail = false; + for ( var i = 0; i < parameterTypes.Length; i++ ) { + var pType = ReflectionTools.GetType(paramTypeNames[i], true); + if ( pType == null ) { + paramsFail = true; + break; + } + parameterTypes[i] = pType; + } + + if ( !paramsFail ) { + + if ( isSerializedGeneric ) { + + var genericArgTypeNames = _genericArgumentsInfo.Split('|'); + var genericArgTypes = new Type[genericArgTypeNames.Length]; + var genericArgsFail = false; + for ( var i = 0; i < genericArgTypes.Length; i++ ) { + var argType = ReflectionTools.GetType(genericArgTypeNames[i], true); + if ( argType == null ) { + genericArgsFail = true; + break; + } + genericArgTypes[i] = argType; + } + + if ( !genericArgsFail ) { + _method = type.RTGetMethod(name, parameterTypes, returnType, genericArgTypes); + } + + } else { + _method = type.RTGetMethod(name, parameterTypes, returnType); + } + } + + //fallback + if ( _method == null ) { + _hasChanged = true; + var methods = type.RTGetMethods(); + _method = methods.FirstOrDefault(m => m.Name == name && m.GetParameters().Length == parameterTypes.Length && isSerializedGeneric == m.IsGenericMethod); + if ( _method == null ) { _method = methods.FirstOrDefault(m => m.Name == name); } + + if ( _method != null && _method.IsGenericMethod ) { + var argType = isSerializedGeneric ? ReflectionTools.GetType(_genericArgumentsInfo.Split('|').First(), true) : _method.GetFirstGenericParameterConstraintType(); + _method = _method.MakeGenericMethod(argType); + } + } + } + + //required + public SerializedMethodInfo() { } + ///Serialize a new MethodInfo + public SerializedMethodInfo(MethodInfo method) { + _hasChanged = false; + _method = method; + } + + public MemberInfo AsMemberInfo() { return _method; } + public MethodBase GetMethodBase() { return _method; } + public bool HasChanged() { return _hasChanged; } + public string AsString() { return string.Format("{0} ({1})", _baseInfo.Replace("|", "."), _paramsInfo.Replace("|", ", ")); } + public override string ToString() { return AsString(); } + + //operator + public static implicit operator MethodInfo(SerializedMethodInfo value) { + return value != null ? value._method : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs.meta new file mode 100644 index 0000000..82e7b2d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedMethodInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0211ec2d060629b49a3fce49b71fcebb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs new file mode 100644 index 0000000..4f27c58 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs @@ -0,0 +1,42 @@ +using System; +using System.Reflection; +using UnityEngine; + +namespace ParadoxNotion.Serialization +{ + + [Serializable] + public class SerializedTypeInfo : ISerializedReflectedInfo + { + + [SerializeField] + private string _baseInfo; + + [NonSerialized] + private Type _type; + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( _type != null ) { _baseInfo = _type.FullName; } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + if ( _baseInfo == null ) { return; } + _type = ReflectionTools.GetType(_baseInfo, true); + } + + public SerializedTypeInfo() { } + public SerializedTypeInfo(Type info) { + _baseInfo = null; + _type = info; + } + + public MemberInfo AsMemberInfo() { return _type; } + public string AsString() { return _baseInfo; } + public override string ToString() { return _baseInfo; } + + //operator + public static implicit operator Type(SerializedTypeInfo value) { + return value != null ? value._type : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs.meta new file mode 100644 index 0000000..a502ba4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedTypeInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af4bb638ab1dfc544a11ef489247aa1b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs new file mode 100644 index 0000000..8f89bfd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs @@ -0,0 +1,94 @@ +using System; +using System.Reflection; +using UnityEngine; +using UnityEngine.Events; + +namespace ParadoxNotion.Serialization +{ + + ///Unity events can either be fields or properties, so we serialize either. + ///This does NOT resolve the actual object, but rather only the memberinfo pointing to that object + [Serializable] + public class SerializedUnityEventInfo : ISerializedReflectedInfo + { + [SerializeField] + private string _baseInfo; + + [NonSerialized] + private MemberInfo _memberInfo; + + ///Just a shortcut + public bool isStatic { + get + { + if ( _memberInfo is FieldInfo ) { return ( _memberInfo as FieldInfo ).IsStatic; } + if ( _memberInfo is PropertyInfo ) { return ( _memberInfo as PropertyInfo ).IsStatic(); } + return false; + } + } + + ///Just a shortcut + public Type memberType { + get + { + if ( _memberInfo is FieldInfo ) { return ( _memberInfo as FieldInfo ).FieldType; } + if ( _memberInfo is PropertyInfo ) { return ( _memberInfo as PropertyInfo ).PropertyType; } + return null; + } + } + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( _memberInfo != null ) { _baseInfo = string.Format("{0}|{1}", _memberInfo.RTReflectedOrDeclaredType().FullName, _memberInfo.Name); } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + if ( _baseInfo == null ) { + return; + } + + var split = _baseInfo.Split('|'); + var type = ReflectionTools.GetType(split[0], true); + if ( type == null ) { + _memberInfo = null; + return; + } + + var name = split[1]; + var result = type.RTGetFieldOrProp(name); + _memberInfo = null; + if ( result is FieldInfo && typeof(UnityEventBase).RTIsAssignableFrom(( result as FieldInfo ).FieldType) ) { + _memberInfo = result; + return; + } + if ( result is PropertyInfo && typeof(UnityEventBase).RTIsAssignableFrom(( result as PropertyInfo ).PropertyType) ) { + _memberInfo = result; + return; + } + } + + public SerializedUnityEventInfo() { } + public SerializedUnityEventInfo(FieldInfo info) { _memberInfo = info; } + public SerializedUnityEventInfo(PropertyInfo info) { _memberInfo = info; } + public SerializedUnityEventInfo(MemberInfo info) { + if ( info is FieldInfo || info is PropertyInfo ) { + _memberInfo = info; + return; + } + throw new System.Exception("MemberInfo is neither Field nor Property"); + } + + public MemberInfo AsMemberInfo() { return _memberInfo; } + public string AsString() { return _baseInfo != null ? _baseInfo.Replace("|", ".") : "None"; } + public override string ToString() { return AsString(); } + + //operator + public static implicit operator FieldInfo(SerializedUnityEventInfo value) { + return value != null ? value._memberInfo as FieldInfo : null; + } + + //operator + public static implicit operator PropertyInfo(SerializedUnityEventInfo value) { + return value != null ? value._memberInfo as PropertyInfo : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs.meta new file mode 100644 index 0000000..db3f88c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/SerializedUnityEventInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83eb38c167b58a043a26dc7ef51eaf12 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs new file mode 100644 index 0000000..57effa6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs @@ -0,0 +1,70 @@ +using System; +using System.Linq; +using ParadoxNotion.Serialization.FullSerializer; + +namespace ParadoxNotion.Serialization +{ + + ///Handles missing types serialization and recovery + public class fsRecoveryProcessor : fsObjectProcessor where TMissing : TCanProcess, IMissingRecoverable + { + + private const string FIELD_NAME_TYPE = "_missingType"; + private const string FIELD_NAME_STATE = "_recoveryState"; + + public override bool CanProcess(Type type) { + return typeof(TCanProcess).RTIsAssignableFrom(type); + } + + public override void OnBeforeDeserialize(Type storageType, ref fsData data) { + + if ( Services.Threader.applicationIsPlaying ) { + return; + } + + if ( !data.IsDictionary ) { + return; + } + + var json = data.AsDictionary; + + fsData typeData; + if ( json.TryGetValue(fsSerializer.KEY_INSTANCE_TYPE, out typeData) ) { + + //check if serialized can actually resolve the type + var serializedType = ReflectionTools.GetType(typeData.AsString, storageType); + + //If not, handle missing serialized type + if ( serializedType == null ) { + //Replace with a Missing Type + //inject the Missing Type and store recovery serialization state. + //recoveryState and missingType are serializable members of Missing Type. + var wasType = typeData.AsString; + var wasData = fsJsonPrinter.PrettyJson(data); + json[FIELD_NAME_TYPE] = new fsData(wasType); + json[FIELD_NAME_STATE] = new fsData(wasData); + json[fsSerializer.KEY_INSTANCE_TYPE] = new fsData(typeof(TMissing).FullName); + } + + //Recover possibly found serialized type + if ( serializedType == typeof(TMissing) ) { + + //Does the missing type now exists? + var missingType = ReflectionTools.GetType(json[FIELD_NAME_TYPE].AsString, storageType); + + //Finaly recover if we have a type + if ( missingType != null ) { + + var recoveryState = json[FIELD_NAME_STATE].AsString; + var recoverJson = fsJsonParser.Parse(recoveryState).AsDictionary; + + //merge the recover state *ON TOP* of the current state, thus merging only Declared recovered members + json = json.Concat(recoverJson.Where(kvp => !json.ContainsKey(kvp.Key))).ToDictionary(c => c.Key, c => c.Value); + json[fsSerializer.KEY_INSTANCE_TYPE] = new fsData(missingType.FullName); + data = new fsData(json); + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs.meta new file mode 100644 index 0000000..ba8b9f3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsRecoveryProcessor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8529107908563041be3c122dca2754e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs new file mode 100644 index 0000000..90cab22 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs @@ -0,0 +1,90 @@ +using System; +using ParadoxNotion.Serialization.FullSerializer; + + +namespace ParadoxNotion.Serialization +{ + + ///Handles UnityObject references serialization + public class fsUnityObjectConverter : fsConverter + { + + public override bool CanProcess(Type type) { + return typeof(UnityEngine.Object).RTIsAssignableFrom(type); + } + + public override bool RequestCycleSupport(Type storageType) { + return false; + } + + public override bool RequestInheritanceSupport(Type storageType) { + return false; + } + + public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType) { + + var database = Serializer.ReferencesDatabase; + if ( database == null ) { + serialized = new fsData(); + return fsResult.Success; + // return fsResult.Warn("No database references provided for serialization"); + } + + var o = instance as UnityEngine.Object; + + //for null store 0 + if ( ReferenceEquals(o, null) ) { + serialized = new fsData(0); + return fsResult.Success; + } + + //this is done to avoid serializing 0 because it's default value of int and will not be printed, + //which is done for performance. Thus we always start from index 1. 0 is always null. + if ( database.Count == 0 ) { + database.Add(null); + } + + //search reference match + var index = -1; + for ( var i = 0; i < database.Count; i++ ) { + if ( ReferenceEquals(database[i], o) ) { + index = i; + break; + } + } + + //if no match, add new + if ( index <= 0 ) { + index = database.Count; + database.Add(o); + } + + serialized = new fsData(index); + return fsResult.Success; + } + + public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType) { + + var database = Serializer.ReferencesDatabase; + if ( database == null ) { + return fsResult.Warn("A Unity Object reference has not been deserialized because no database references was provided."); + } + + var index = (int)data.AsInt64; + + if ( index >= database.Count ) { + return fsResult.Warn("A Unity Object reference has not been deserialized because no database entry was found in provided database references."); + } + + var reference = database[index]; + if ( ReferenceEquals(reference as UnityEngine.Object, null) || storageType.RTIsAssignableFrom(reference.GetType()) ) { + instance = reference; + } + return fsResult.Success; + } + + public override object CreateInstance(fsData data, Type storageType) { + return null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs.meta new file mode 100644 index 0000000..cd571be --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Serialization/fsUnityObjectConverter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97bfd809a2f1b7f439c506fadd1cbb2b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services.meta new file mode 100644 index 0000000..9ae1cea --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 02ed525a9f8611f43acc8938c7274e25 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs new file mode 100644 index 0000000..aff14eb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs @@ -0,0 +1,167 @@ +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ParadoxNotion.Services +{ + + ///Automaticaly added to a gameobject when needed. Handles forwarding Unity event messages to listeners that need them as well as Custom event forwarding. Notice: this is a partial class. Add your own methods/events if you like. + public partial class EventRouter : MonoBehaviour + , IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, + IDragHandler, IScrollHandler, IUpdateSelectedHandler, ISelectHandler, IDeselectHandler, IMoveHandler, ISubmitHandler, IDropHandler + { + + //special router for OnAnimatorMove only + private EventRouterAnimatorMove _routerAnimatorMove; + + ///---------------------------------------------------------------------------------------------- + + public delegate void EventDelegate(EventData msg); + public delegate void EventDelegate(EventData msg); + + ///---------------------------------------------------------------------------------------------- + public event EventDelegate onPointerEnter; + public event EventDelegate onPointerExit; + public event EventDelegate onPointerDown; + public event EventDelegate onPointerUp; + public event EventDelegate onPointerClick; + public event EventDelegate onDrag; + public event EventDelegate onDrop; + public event EventDelegate onScroll; + public event EventDelegate onUpdateSelected; + public event EventDelegate onSelect; + public event EventDelegate onDeselect; + public event EventDelegate onMove; + public event EventDelegate onSubmit; + + void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData) { if ( onPointerEnter != null ) onPointerEnter(new EventData(eventData, gameObject, this)); } + void IPointerExitHandler.OnPointerExit(PointerEventData eventData) { if ( onPointerExit != null ) onPointerExit(new EventData(eventData, gameObject, this)); } + void IPointerDownHandler.OnPointerDown(PointerEventData eventData) { if ( onPointerDown != null ) onPointerDown(new EventData(eventData, gameObject, this)); } + void IPointerUpHandler.OnPointerUp(PointerEventData eventData) { if ( onPointerUp != null ) onPointerUp(new EventData(eventData, gameObject, this)); } + void IPointerClickHandler.OnPointerClick(PointerEventData eventData) { if ( onPointerClick != null ) onPointerClick(new EventData(eventData, gameObject, this)); } + void IDragHandler.OnDrag(PointerEventData eventData) { if ( onDrag != null ) onDrag(new EventData(eventData, gameObject, this)); } + void IDropHandler.OnDrop(PointerEventData eventData) { if ( onDrop != null ) onDrop(new EventData(eventData, gameObject, this)); } + void IScrollHandler.OnScroll(PointerEventData eventData) { if ( onScroll != null ) onScroll(new EventData(eventData, gameObject, this)); } + void IUpdateSelectedHandler.OnUpdateSelected(BaseEventData eventData) { if ( onUpdateSelected != null ) onUpdateSelected(new EventData(eventData, gameObject, this)); } + void ISelectHandler.OnSelect(BaseEventData eventData) { if ( onSelect != null ) onSelect(new EventData(eventData, gameObject, this)); } + void IDeselectHandler.OnDeselect(BaseEventData eventData) { if ( onDeselect != null ) onDeselect(new EventData(eventData, gameObject, this)); } + void IMoveHandler.OnMove(AxisEventData eventData) { if ( onMove != null ) onMove(new EventData(eventData, gameObject, this)); } + void ISubmitHandler.OnSubmit(BaseEventData eventData) { if ( onSubmit != null ) onSubmit(new EventData(eventData, gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onMouseDown; + public event EventDelegate onMouseDrag; + public event EventDelegate onMouseEnter; + public event EventDelegate onMouseExit; + public event EventDelegate onMouseOver; + public event EventDelegate onMouseUp; + + void OnMouseDown() { if ( onMouseDown != null ) onMouseDown(new EventData(gameObject, this)); } + void OnMouseDrag() { if ( onMouseDrag != null ) onMouseDrag(new EventData(gameObject, this)); } + void OnMouseEnter() { if ( onMouseEnter != null ) onMouseEnter(new EventData(gameObject, this)); } + void OnMouseExit() { if ( onMouseExit != null ) onMouseExit(new EventData(gameObject, this)); } + void OnMouseOver() { if ( onMouseOver != null ) onMouseOver(new EventData(gameObject, this)); } + void OnMouseUp() { if ( onMouseUp != null ) onMouseUp(new EventData(gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onEnable; + public event EventDelegate onDisable; + public event EventDelegate onDestroy; + + void OnEnable() { if ( onEnable != null ) onEnable(new EventData(gameObject, this)); } + void OnDisable() { if ( onDisable != null ) onDisable(new EventData(gameObject, this)); } + void OnDestroy() { if ( onDestroy != null ) onDestroy(new EventData(gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onTransformChildrenChanged; + public event EventDelegate onTransformParentChanged; + + void OnTransformChildrenChanged() { if ( onTransformChildrenChanged != null ) onTransformChildrenChanged(new EventData(gameObject, this)); } + void OnTransformParentChanged() { if ( onTransformParentChanged != null ) onTransformParentChanged(new EventData(gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onAnimatorIK; + public event EventDelegate onAnimatorMove { + add { if ( _routerAnimatorMove == null ) { _routerAnimatorMove = gameObject.GetAddComponent(); } _routerAnimatorMove.onAnimatorMove += value; } + remove { if ( _routerAnimatorMove != null ) { _routerAnimatorMove.onAnimatorMove -= value; } } + } + + void OnAnimatorIK(int layerIndex) { if ( onAnimatorIK != null ) onAnimatorIK(new EventData(layerIndex, gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onBecameInvisible; + public event EventDelegate onBecameVisible; + + void OnBecameInvisible() { if ( onBecameInvisible != null ) onBecameInvisible(new EventData(gameObject, this)); } + void OnBecameVisible() { if ( onBecameVisible != null ) onBecameVisible(new EventData(gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onControllerColliderHit; + public event EventDelegate onParticleCollision; + + void OnControllerColliderHit(ControllerColliderHit hit) { if ( onControllerColliderHit != null ) onControllerColliderHit(new EventData(hit, gameObject, this)); } + void OnParticleCollision(GameObject other) { if ( onParticleCollision != null ) onParticleCollision(new EventData(other, gameObject, this)); } + + //------------------------------------------------- + public event EventDelegate onCollisionEnter; + public event EventDelegate onCollisionExit; + public event EventDelegate onCollisionStay; + + void OnCollisionEnter(Collision collisionInfo) { if ( onCollisionEnter != null ) onCollisionEnter(new EventData(collisionInfo, gameObject, this)); } + void OnCollisionExit(Collision collisionInfo) { if ( onCollisionExit != null ) onCollisionExit(new EventData(collisionInfo, gameObject, this)); } + void OnCollisionStay(Collision collisionInfo) { if ( onCollisionStay != null ) onCollisionStay(new EventData(collisionInfo, gameObject, this)); } + + public event EventDelegate onCollisionEnter2D; + public event EventDelegate onCollisionExit2D; + public event EventDelegate onCollisionStay2D; + + void OnCollisionEnter2D(Collision2D collisionInfo) { if ( onCollisionEnter2D != null ) onCollisionEnter2D(new EventData(collisionInfo, gameObject, this)); } + void OnCollisionExit2D(Collision2D collisionInfo) { if ( onCollisionExit2D != null ) onCollisionExit2D(new EventData(collisionInfo, gameObject, this)); } + void OnCollisionStay2D(Collision2D collisionInfo) { if ( onCollisionStay2D != null ) onCollisionStay2D(new EventData(collisionInfo, gameObject, this)); } + + //------------------------------------------------- + + public event EventDelegate onTriggerEnter; + public event EventDelegate onTriggerExit; + public event EventDelegate onTriggerStay; + + void OnTriggerEnter(Collider other) { if ( onTriggerEnter != null ) onTriggerEnter(new EventData(other, gameObject, this)); } + void OnTriggerExit(Collider other) { if ( onTriggerExit != null ) onTriggerExit(new EventData(other, gameObject, this)); } + void OnTriggerStay(Collider other) { if ( onTriggerStay != null ) onTriggerStay(new EventData(other, gameObject, this)); } + + public event EventDelegate onTriggerEnter2D; + public event EventDelegate onTriggerExit2D; + public event EventDelegate onTriggerStay2D; + + void OnTriggerEnter2D(Collider2D other) { if ( onTriggerEnter2D != null ) onTriggerEnter2D(new EventData(other, gameObject, this)); } + void OnTriggerExit2D(Collider2D other) { if ( onTriggerExit2D != null ) onTriggerExit2D(new EventData(other, gameObject, this)); } + void OnTriggerStay2D(Collider2D other) { if ( onTriggerStay2D != null ) onTriggerStay2D(new EventData(other, gameObject, this)); } + + ///---------------------------------------------------------------------------------------------- + + public event System.Action onRenderImage; + void OnRenderImage(RenderTexture source, RenderTexture destination) { if ( onRenderImage != null ) onRenderImage(source, destination); } + ///---------------------------------------------------------------------------------------------- + + public event EventDelegate onDrawGizmos; + void OnDrawGizmos() { if ( onDrawGizmos != null ) onDrawGizmos(new EventData(gameObject, this)); } + ///---------------------------------------------------------------------------------------------- + + + ///---------------------------------------------------------------------------------------------- + + public delegate void CustomEventDelegate(string name, IEventData data); + + ///Sub/Unsub to a custom named events invoked through this router + public event CustomEventDelegate onCustomEvent; + + ///Invokes a custom named event + public void InvokeCustomEvent(string name, object value, object sender) { + if ( onCustomEvent != null ) { onCustomEvent(name, new EventData(value, gameObject, sender)); } + } + + ///Invokes a custom named event + public void InvokeCustomEvent(string name, T value, object sender) { + if ( onCustomEvent != null ) { onCustomEvent(name, new EventData(value, gameObject, sender)); } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs.meta new file mode 100644 index 0000000..365e362 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2074100e0f8b874ebe51466dc669378 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs new file mode 100644 index 0000000..c8c8a48 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +namespace ParadoxNotion.Services +{ + + ///Special EventRouter added automatically when required only when OnAnimatorMove event subscribed. When OnAnimatorMove method exists, Animator ceases to function normally. This is why this is moved to a separate component and outside of EventRouter. + public class EventRouterAnimatorMove : MonoBehaviour + { + public event EventRouter.EventDelegate onAnimatorMove; + + void OnAnimatorMove() { + if ( onAnimatorMove != null ) { onAnimatorMove(new EventData(gameObject, this)); } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs.meta new file mode 100644 index 0000000..933fed8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/EventRouterAnimatorMove.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 48610824f98dc9f498ea195390812be8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs new file mode 100644 index 0000000..bf8a430 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs @@ -0,0 +1,124 @@ +using UnityEngine; +using System.Collections.Generic; +using System.Linq; +using System.Diagnostics; + +namespace ParadoxNotion.Services +{ + + ///A custom logger + public static class Logger + { + + ///A message that is logged + public struct Message + { + private System.WeakReference _contextRef; + public object context { + get + { + object reference = null; + if ( _contextRef != null ) { _contextRef.TryGetTarget(out reference); } + return reference; + } + set { _contextRef = new System.WeakReference(value); } + } + + public LogType type; + public string text; + public string tag; + + public bool IsValid() { return !string.IsNullOrEmpty(text); } + } + + public delegate bool LogHandler(Message message); + private static List subscribers = new List(); + public static bool enabled = true; + + ///---------------------------------------------------------------------------------------------- + + ///Subscribe a listener to the logger + public static void AddListener(LogHandler callback) { subscribers.Add(callback); } + ///Remove a listener from the logger + public static void RemoveListener(LogHandler callback) { subscribers.Remove(callback); } + + ///---------------------------------------------------------------------------------------------- + + ///Log Info + [Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] + public static void Log(object message, string tag = null, object context = null) { + Internal_Log(LogType.Log, message, tag, context); + } + + ///Log Warning + [Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] + public static void LogWarning(object message, string tag = null, object context = null) { + Internal_Log(LogType.Warning, message, tag, context); + } + + ///Log Error + [Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] + public static void LogError(object message, string tag = null, object context = null) { + Internal_Log(LogType.Error, message, tag, context); + } + + ///Log Exception + public static void LogException(System.Exception exception, string tag = null, object context = null) { + Internal_Log(LogType.Exception, exception, tag, context); + } + + ///---------------------------------------------------------------------------------------------- + + //... + private static void Internal_Log(LogType type, object message, string tag, object context) { + + if ( !enabled ) { return; } + + if ( subscribers != null && subscribers.Count > 0 ) { + var msg = new Message(); + msg.type = type; + if ( message is System.Exception ) { + var exc = (System.Exception)message; + msg.text = exc.Message + "\n" + exc.StackTrace.Split('\n').FirstOrDefault(); + } else { + msg.text = message != null ? message.ToString() : "NULL"; + } + msg.tag = tag; + msg.context = context; + var handled = false; + foreach ( var call in subscribers ) { + if ( call(msg) ) { + handled = true; + break; + } + } + //if log is handled, don't forward to unity console unless its an exception + if ( handled && type != LogType.Exception ) { + return; + } + } + + if ( !string.IsNullOrEmpty(tag) ) { + tag = string.Format("({0} {1})", tag, type.ToString()); + } else { tag = string.Format("({0})", type.ToString()); } + +#if UNITY_EDITOR + if ( !Threader.isMainThread ) { + UnityEditor.EditorApplication.delayCall += () => { ForwardToUnity(type, message, tag, context); }; + return; + } +#endif + + ForwardToUnity(type, message, tag, context); + } + + //forward the log to unity console + private static void ForwardToUnity(LogType type, object message, string tag, object context) { + if ( message is System.Exception ) { + UnityEngine.Debug.unityLogger.LogException((System.Exception)message); + } else { + UnityEngine.Debug.unityLogger.Log(type, tag, message, context as UnityEngine.Object); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs.meta new file mode 100644 index 0000000..e681c05 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Logger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b1454147d2413f7438596528c3706d39 +timeCreated: 1510186426 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs new file mode 100644 index 0000000..0863946 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs @@ -0,0 +1,116 @@ +using System; +using UnityEngine; + + +namespace ParadoxNotion.Services +{ + + ///Singleton. Automatically added when needed, collectively calls methods that needs updating amongst other things relevant to MonoBehaviours + public class MonoManager : MonoBehaviour + { + ///Mode used in Add and Remove UpdateCall + public enum UpdateMode + { + NormalUpdate = 0, + LateUpdate = 1, + FixedUpdate = 2, + } + + public event Action onUpdate; + public event Action onLateUpdate; + public event Action onFixedUpdate; + public event Action onApplicationQuit; + public event Action onApplicationPause; + +#pragma warning disable 0067 + ///onGUI is only invoked in editor + public event Action onGUI; +#pragma warning restore 0067 + + private static bool isQuiting; + + private static MonoManager _current; + public static MonoManager current { + get + { + if ( _current == null && Threader.applicationIsPlaying && !isQuiting ) { + _current = FindAnyObjectByType(); + if ( _current == null ) { + _current = new GameObject("_MonoManager").AddComponent(); + } + } + return _current; + } + } + +#if UNITY_2019_3_OR_NEWER + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] + static void Purge() { isQuiting = false; } +#endif + + ///Creates the MonoManager singleton + public static void Create() { _current = current; } + + ///Adds an update call based on mode provided + public void AddUpdateCall(UpdateMode mode, System.Action call) { + switch ( mode ) { + case ( UpdateMode.NormalUpdate ): onUpdate += call; break; + case ( UpdateMode.LateUpdate ): onLateUpdate += call; break; + case ( UpdateMode.FixedUpdate ): onFixedUpdate += call; break; + } + } + + ///Removes an update call based on mode provided + public void RemoveUpdateCall(UpdateMode mode, System.Action call) { + switch ( mode ) { + case ( UpdateMode.NormalUpdate ): onUpdate -= call; break; + case ( UpdateMode.LateUpdate ): onLateUpdate -= call; break; + case ( UpdateMode.FixedUpdate ): onFixedUpdate -= call; break; + } + } + + ///---------------------------------------------------------------------------------------------- + + protected void Awake() { + if ( _current != null && _current != this ) { + DestroyImmediate(this.gameObject); + return; + } + + DontDestroyOnLoad(gameObject); + _current = this; + } + + protected void OnApplicationQuit() { + isQuiting = true; + if ( onApplicationQuit != null ) { + onApplicationQuit(); + } + } + + protected void OnApplicationPause(bool isPause) { + if ( onApplicationPause != null ) { + onApplicationPause(isPause); + } + } + + protected void Update() { + if ( onUpdate != null ) { onUpdate(); } + } + + protected void LateUpdate() { + if ( onLateUpdate != null ) { onLateUpdate(); } + } + + protected void FixedUpdate() { + if ( onFixedUpdate != null ) { onFixedUpdate(); } + } + +#if UNITY_EDITOR + protected void OnGUI() { + if ( onGUI != null ) { onGUI(); } + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta new file mode 100644 index 0000000..1d8bfda --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 44d2c5333075d6b4e80311cb6820c5f1 +timeCreated: 1539386928 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 100 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs new file mode 100644 index 0000000..2941128 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using System.Threading; +using System; + +namespace ParadoxNotion.Services +{ + + ///Simple Thread helper for both runtime and editor + public static class Threader + { + +#if UNITY_EDITOR + //this is to be able to call isPlaying in other threads + [UnityEditor.InitializeOnLoadMethod] +#if UNITY_2019_3_OR_NEWER + //the 2nd attribute is used for 'no domain reload' + [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)] +#endif + static void Init() { + applicationIsPlaying = UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode; + UnityEditor.EditorApplication.playModeStateChanged -= PlayModeChanged; + UnityEditor.EditorApplication.playModeStateChanged += PlayModeChanged; + } + static void PlayModeChanged(UnityEditor.PlayModeStateChange state) { + if ( state == UnityEditor.PlayModeStateChange.EnteredPlayMode ) { applicationIsPlaying = true; } + if ( state == UnityEditor.PlayModeStateChange.ExitingPlayMode ) { applicationIsPlaying = false; } + } + +#else + + static Threader() { applicationIsPlaying = true; } +#endif + + + public static bool applicationIsPlaying { get; private set; } + public static bool isMainThread => Thread.CurrentThread.ManagedThreadId == 1; + + + ///---------------------------------------------------------------------------------------------- + + public static Thread StartAction(Thread thread, Action function, Action callback = null) { + if ( thread != null && thread.IsAlive ) { thread.Abort(); } + thread = new Thread(() => function()); + Begin(thread, callback); + return thread; + } + + ///---------------------------------------------------------------------------------------------- + + public static Thread StartFunction(Thread thread, Func function, Action callback = null) { + if ( thread != null && thread.IsAlive ) thread.Abort(); + TResult result = default(TResult); + thread = new Thread(() => { result = function(); }); + Begin(thread, () => { callback(result); }); + return thread; + } + + ///---------------------------------------------------------------------------------------------- + + //This intermediate method exists to seperate editor and runtime usage. + static void Begin(Thread thread, Action callback) { + + thread.Start(); + +#if UNITY_EDITOR + if ( !applicationIsPlaying ) { + threadMonitors.Add(ThreadMonitor(thread, callback)); + return; + } +#endif + + MonoManager.current.StartCoroutine(ThreadMonitor(thread, callback)); + } + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR + private static List threadMonitors = new List(); + [UnityEditor.InitializeOnLoadMethod] + static void Initialize() { + UnityEditor.EditorApplication.update += OnEditorUpdate; + } + + //So that threads work in Editor too + static void OnEditorUpdate() { + if ( threadMonitors.Count > 0 ) { + for ( var i = 0; i < threadMonitors.Count; i++ ) { + var e = threadMonitors[i]; + if ( !e.MoveNext() ) { + threadMonitors.RemoveAt(i); + } + } + } + } +#endif + + + ///---------------------------------------------------------------------------------------------- + + //Use IEnumerators and unity coroutines to handle updating the thread. + static IEnumerator ThreadMonitor(Thread thread, Action callback) { + + while ( thread.IsAlive ) { + yield return null; + } + + //This yield is not required. + //It's for consistency matter when writing code so that we know there will always be at least 1 frame delay. + yield return null; + + if ( ( thread.ThreadState & ThreadState.AbortRequested ) != ThreadState.AbortRequested ) { + thread.Join(); + if ( callback != null ) { + callback(); + } + } + } + } + +} diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs.meta new file mode 100644 index 0000000..ed30de5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/Threader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a28adfe7475c3b47b11daa58f813a0b +timeCreated: 1509145860 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs new file mode 100644 index 0000000..f276bda --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs @@ -0,0 +1,119 @@ +using UnityEngine; +using System; + +namespace ParadoxNotion +{ + + ///Auto "Convenience Converters" from type to type (boxing). This includes unconventional data conversions like for example GameObject to Vector3 (by transform.position). + public static class TypeConverter + { + ///Custom Converter delegate + public delegate Func CustomConverter(Type fromType, Type toType); + ///Subscribe custom converter + public static event CustomConverter customConverter; + + ///Returns a function that can convert provided first arg value from type to type + public static Func Get(Type fromType, Type toType) { + + // Custom Converter + if ( customConverter != null ) { + var converter = customConverter(fromType, toType); + if ( converter != null ) { + return converter; + } + } + + // Normal assignment. + if ( toType.RTIsAssignableFrom(fromType) ) { + return (value) => value; + } + + // Anything to string + if ( toType == typeof(string) ) { + return (value) => value != null ? value.ToString() : "NULL"; + } + + // Convertible to convertible. + if ( typeof(IConvertible).RTIsAssignableFrom(toType) && typeof(IConvertible).RTIsAssignableFrom(fromType) ) { + return (value) => { try { return Convert.ChangeType(value, toType); } catch { return !toType.RTIsAbstract() ? Activator.CreateInstance(toType) : null; } }; + } + + // Unity Object to bool. + if ( typeof(UnityEngine.Object).RTIsAssignableFrom(fromType) && toType == typeof(bool) ) { + return (value) => value != null; + } + + // GameObject to Component. + if ( fromType == typeof(GameObject) && typeof(Component).RTIsAssignableFrom(toType) ) { + return (value) => value as GameObject != null ? ( value as GameObject ).GetComponent(toType) : null; + } + + // Component to GameObject. + if ( typeof(Component).RTIsAssignableFrom(fromType) && toType == typeof(GameObject) ) { + return (value) => value as Component != null ? ( value as Component ).gameObject : null; + } + + // Component to Component. + if ( typeof(Component).RTIsAssignableFrom(fromType) && typeof(Component).RTIsAssignableFrom(toType) ) { + return (value) => value as Component != null ? ( value as Component ).gameObject.GetComponent(toType) : null; + } + + // GameObject to Interface + if ( fromType == typeof(GameObject) && toType.RTIsInterface() ) { + return (value) => value as GameObject != null ? ( value as GameObject ).GetComponent(toType) : null; + } + + // Component to Interface + if ( typeof(Component).RTIsAssignableFrom(fromType) && toType.RTIsInterface() ) { + return (value) => value as Component != null ? ( value as Component ).gameObject.GetComponent(toType) : null; + } + + // GameObject to Vector3 (position). + if ( fromType == typeof(GameObject) && toType == typeof(Vector3) ) { + return (value) => { return value as GameObject != null ? ( value as GameObject ).transform.position : Vector3.zero; }; + } + + // Component to Vector3 (position). + if ( typeof(Component).RTIsAssignableFrom(fromType) && toType == typeof(Vector3) ) { + return (value) => { return value as Component != null ? ( value as Component ).transform.position : Vector3.zero; }; + } + + // GameObject to Quaternion (rotation). + if ( fromType == typeof(GameObject) && toType == typeof(Quaternion) ) { + return (value) => { return value as GameObject != null ? ( value as GameObject ).transform.rotation : Quaternion.identity; }; + } + + // Component to Quaternion (rotation). + if ( typeof(Component).RTIsAssignableFrom(fromType) && toType == typeof(Quaternion) ) { + return (value) => { return value as Component != null ? ( value as Component ).transform.rotation : Quaternion.identity; }; + } + + // Quaternion to Vector3 (Euler angles). + if ( fromType == typeof(Quaternion) && toType == typeof(Vector3) ) { + return (value) => ( (Quaternion)value ).eulerAngles; + } + + // Vector3 (Euler angles) to Quaternion. + if ( fromType == typeof(Vector3) && toType == typeof(Quaternion) ) { + return (value) => Quaternion.Euler((Vector3)value); + } + + // Vector2 to Vector3. + if ( fromType == typeof(Vector2) && toType == typeof(Vector3) ) { + return (value) => (Vector3)(Vector2)value; + } + + // Vector3 to Vector2. + if ( fromType == typeof(Vector3) && toType == typeof(Vector2) ) { + return (value) => (Vector2)(Vector3)value; + } + + return null; + } + + ///Returns whether a conversion exists + public static bool CanConvert(Type fromType, Type toType) { + return Get(fromType, toType) != null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs.meta new file mode 100644 index 0000000..e2497f6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/TypeConverter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8f4f53c9f5a7550489f8b1883aecc49c +timeCreated: 1537253847 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility.meta new file mode 100644 index 0000000..317cc88 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b21a0e221ec83be49887115aaa8abc69 +folderAsset: yes +timeCreated: 1540653617 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs new file mode 100644 index 0000000..715249f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace ParadoxNotion +{ + + public static class ColorUtils + { + + ///The color with alpha + public static Color WithAlpha(this Color color, float alpha) { + color.a = alpha; + return color; + } + + ///A greyscale color + public static Color Grey(float value) { + return new Color(value, value, value, 1); + } + + ///Convert Color to Hex. + private static Dictionary colorHexCache = new Dictionary(); + public static string ColorToHex(Color32 color) { +#if UNITY_EDITOR + { + if ( !UnityEditor.EditorGUIUtility.isProSkin ) { + if ( color == Color.white ) { + return "#000000"; + } + } + } +#endif + + string result; + if ( colorHexCache.TryGetValue(color, out result) ) { + return result; + } + result = ( "#" + color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2") ).ToUpper(); + return colorHexCache[color] = result; + } + + ///Convert Hex to Color. + private static Dictionary hexColorCache = new Dictionary(System.StringComparer.OrdinalIgnoreCase); + public static Color HexToColor(string hex) { + Color result; + if ( hexColorCache.TryGetValue(hex, out result) ) { + return result; + } + if ( hex.Length != 6 ) { + throw new System.Exception("Invalid length for hex color provided"); + } + var r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); + var g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); + var b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); + result = new Color32(r, g, b, 255); + return hexColorCache[hex] = result; + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs.meta new file mode 100644 index 0000000..07a425c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ColorUtils.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: be608bbadd48214419bdc035ed0d1296 +timeCreated: 1541317259 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs new file mode 100644 index 0000000..b8eeb2b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs @@ -0,0 +1,125 @@ +using UnityEngine; + +namespace ParadoxNotion +{ + + public static class CurveUtils + { + + const float POS_CHECK_RES = 100f; + const float POS_CHECK_DISTANCE = 10f; + + ///Get position on curve from, to, by t + public static Vector2 GetPosAlongCurve(Vector2 from, Vector2 to, Vector2 fromTangent, Vector2 toTangent, float t) { + float u = 1.0f - t; + float tt = t * t; + float uu = u * u; + float uuu = uu * u; + float ttt = tt * t; + Vector2 result = uuu * from; + result += 3 * uu * t * ( from + fromTangent ); + result += 3 * u * tt * ( to + toTangent ); + result += ttt * to; + return result; + } + + ///Is target position along from, to curve + public static bool IsPosAlongCurve(Vector2 from, Vector2 to, Vector2 fromTangent, Vector2 toTangent, Vector2 targetPosition) { + float norm = 0; + return IsPosAlongCurve(from, to, fromTangent, toTangent, targetPosition, out norm); + } + + + ///Is target position along from, to curve + public static bool IsPosAlongCurve(Vector2 from, Vector2 to, Vector2 fromTangent, Vector2 toTangent, Vector2 targetPosition, out float norm) { + if ( ParadoxNotion.RectUtils.GetBoundRect(from, to).ExpandBy(POS_CHECK_DISTANCE).Contains(targetPosition) ) { + for ( var i = 0f; i <= POS_CHECK_RES; i++ ) { + var checkPos = GetPosAlongCurve(from, to, fromTangent, toTangent, i / POS_CHECK_RES); + if ( Vector2.Distance(targetPosition, checkPos) < POS_CHECK_DISTANCE ) { + norm = i / POS_CHECK_RES; + return true; + } + } + } + norm = 0; + return false; + } + + //Resolve relevant tangency + public static void ResolveTangents(Vector2 from, Vector2 to, float rigidMlt, PlanarDirection direction, out Vector2 fromTangent, out Vector2 toTangent) { + var fromRect = new Rect(0, 0, 1, 1); + var toRect = new Rect(0, 0, 1, 1); + fromRect.center = from; + toRect.center = to; + ResolveTangents(from, to, fromRect, toRect, rigidMlt, direction, out fromTangent, out toTangent); + } + + //Resolve relevant tangency + public static void ResolveTangents(Vector2 from, Vector2 to, Rect fromRect, Rect toRect, float rigidMlt, PlanarDirection direction, out Vector2 fromTangent, out Vector2 toTangent) { + var tangentX = Mathf.Abs(from.x - to.x) * rigidMlt; + tangentX = Mathf.Max(tangentX, 25); + + var tangentY = Mathf.Abs(from.y - to.y) * rigidMlt; + tangentY = Mathf.Max(tangentY, 25); + + switch ( direction ) { + case ( PlanarDirection.Horizontal ): { + fromTangent = new Vector2(tangentX, 0); + toTangent = new Vector2(-tangentX, 0); + } + return; + + case ( PlanarDirection.Vertical ): { + fromTangent = new Vector2(0, tangentY); + toTangent = new Vector2(0, -tangentY); + } + return; + + case ( PlanarDirection.Auto ): { + var resultFrom = default(Vector2); + if ( from.x <= fromRect.xMin ) { + resultFrom = new Vector2(-tangentX, 0); + } + + if ( from.x >= fromRect.xMax ) { + resultFrom = new Vector2(tangentX, 0); + } + + if ( from.y <= fromRect.yMin ) { + resultFrom = new Vector2(0, -tangentY); + } + + if ( from.y >= fromRect.yMax ) { + resultFrom = new Vector2(0, tangentY); + } + + var resultTo = default(Vector2); + if ( to.x <= toRect.xMin ) { + resultTo = new Vector2(-tangentX, 0); + } + + if ( to.x >= toRect.xMax ) { + resultTo = new Vector2(tangentX, 0); + } + + if ( to.y <= toRect.yMin ) { + resultTo = new Vector2(0, -tangentY); + } + + if ( to.y >= toRect.yMax ) { + resultTo = new Vector2(0, tangentY); + } + + fromTangent = resultFrom; + toTangent = resultTo; + } + return; + } + + fromTangent = default(Vector2); + toTangent = default(Vector2); + } + + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs.meta new file mode 100644 index 0000000..a6f8df7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/CurveUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b3cea3c839d87a146b9ab3ee000da59d +timeCreated: 1538759306 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs new file mode 100644 index 0000000..9450a79 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs @@ -0,0 +1,40 @@ +using UnityEngine; + +namespace ParadoxNotion +{ + + ///to create styles easier like 'new GUIStyle().Padding(2,2,2,2).Margin(1,1,1,1)...' etc + public static class GUIStyleUtils + { + + public static GUIStyle Margin(this GUIStyle style, int left, int right, int top, int bottom) { + style.margin = new RectOffset(left, right, top, bottom); + return style; + } + + public static GUIStyle Padding(this GUIStyle style, int left, int right, int top, int bottom) { + style.padding = new RectOffset(left, right, top, bottom); + return style; + } + + public static GUIStyle Border(this GUIStyle style, int left, int right, int top, int bottom) { + style.border = new RectOffset(left, right, top, bottom); + return style; + } + + public static GUIStyle Overflow(this GUIStyle style, int left, int right, int top, int bottom) { + style.overflow = new RectOffset(left, right, top, bottom); + return style; + } + + public static GUIStyle TextAlignment(this GUIStyle style, TextAnchor anchor) { + style.alignment = anchor; + return style; + } + + public static GUIStyle RichText(this GUIStyle style, bool rich) { + style.richText = rich; + return style; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs.meta new file mode 100644 index 0000000..d78ea48 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/GUIStyleUtils.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0aa9c33e3adc45844ae3376c2a089529 +timeCreated: 1541329570 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs new file mode 100644 index 0000000..b35256a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs @@ -0,0 +1,88 @@ +using UnityEngine; +using System.Collections.Generic; + +namespace ParadoxNotion +{ + public static class LayerUtils + { + ///Create LayerMask from layer names + public static LayerMask CreateFromNames(params string[] layerNames) { return LayerNamesToMask(layerNames); } + + ///Create LayerMask from layer numbers + public static LayerMask CreateFromNumbers(params int[] layerNumbers) { return LayerNumbersToMask(layerNumbers); } + + ///Layer names to LayerMask + public static LayerMask LayerNamesToMask(params string[] layerNames) { + LayerMask ret = (LayerMask)0; + foreach ( var name in layerNames ) { + ret |= ( 1 << LayerMask.NameToLayer(name) ); + } + return ret; + } + + ///Layer numbers to LayerMask + public static LayerMask LayerNumbersToMask(params int[] layerNumbers) { + LayerMask ret = (LayerMask)0; + foreach ( var layer in layerNumbers ) { + ret |= ( 1 << layer ); + } + return ret; + } + + ///Inverse LayerMask + public static LayerMask Inverse(this LayerMask mask) { return ~mask; } + + ///Adds layer names to LayerMask + public static LayerMask AddToMask(this LayerMask mask, params string[] layerNames) { return mask | LayerNamesToMask(layerNames); } + + ///Remove layer names from LayerMask + public static LayerMask RemoveFromMask(this LayerMask mask, params string[] layerNames) { + LayerMask invertedOriginal = ~mask; + return ~( invertedOriginal | LayerNamesToMask(layerNames) ); + } + + ///Does LayerMask contain any target layers (by name) + public static bool ContainsAnyLayer(this LayerMask mask, params string[] layerNames) { + if ( layerNames == null ) { return false; } + for ( var i = 0; i < layerNames.Length; i++ ) { + if ( mask == ( mask | ( 1 << LayerMask.NameToLayer(layerNames[i]) ) ) ) { + return true; + } + } + return false; + } + + ///Does LayerMask contain all target layers (by name) + public static bool ContainsAllLayers(this LayerMask mask, params string[] layerNames) { + if ( layerNames == null ) { return false; } + for ( var i = 0; i < layerNames.Length; i++ ) { + if ( !( mask == ( mask | ( 1 << LayerMask.NameToLayer(layerNames[i]) ) ) ) ) { + return false; + } + } + return true; + } + + ///Return layer names in/from LayerMask + public static string[] MaskToNames(this LayerMask mask) { + var output = new List(); + + for ( int i = 0; i < 32; ++i ) { + int shifted = 1 << i; + if ( ( mask & shifted ) == shifted ) { + string layerName = LayerMask.LayerToName(i); + if ( !string.IsNullOrEmpty(layerName) ) { + output.Add(layerName); + } + } + } + return output.ToArray(); + } + + ///Redable LayerMask names + public static string MaskToString(this LayerMask mask) { return MaskToString(mask, ", "); } + + ///Redable LayerMask names by delimiter + public static string MaskToString(this LayerMask mask, string delimiter) { return string.Join(delimiter, MaskToNames(mask)); } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs.meta new file mode 100644 index 0000000..d08336e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/LayerUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25bdec3415d91c442809744b0695dbf6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs new file mode 100644 index 0000000..bc04a9c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace ParadoxNotion +{ + public static class ObjectUtils + { + ///Equals and ReferenceEquals check with added special treat for Unity Objects + public static bool AnyEquals(object a, object b) { + + //regardless calling ReferenceEquals, unity is still doing magic and this is the only true solution (I've found) + if ( ( a is UnityEngine.Object || a == null ) && ( b is UnityEngine.Object || b == null ) ) { + return a as UnityEngine.Object == b as UnityEngine.Object; + } + + //while '==' is reference equals, we still use '==' for when one is unity object and the other is not + return a == b || object.Equals(a, b) || object.ReferenceEquals(a, b); + } + + ///Fisher-Yates shuffle algorithm to shuffle lists + public static List Shuffle(this List list) { + for ( var i = list.Count - 1; i > 0; i-- ) { + var j = (int)Mathf.Floor(Random.value * ( i + 1 )); + var temp = list[i]; + list[i] = list[j]; + list[j] = temp; + } + return list; + } + + ///Quick way to check "is" and get a casted result + public static bool Is(this object o, out T result) { + if ( o is T ) { + result = (T)o; + return true; + } + result = default(T); + return false; + } + + ///Gets component or adds it of it doesnt exist + public static T GetAddComponent(this GameObject gameObject) where T : Component { + if ( gameObject == null ) { return null; } + var result = gameObject.GetComponent(); + if ( result == null ) { + result = gameObject.AddComponent(); + } + return result; + } + + ///"Transform" the component to target type from the same gameobject + public static Component TransformToType(this Component current, System.Type type) { + if ( current != null && type != null && !type.RTIsAssignableFrom(current.GetType()) ) { + if ( type.RTIsSubclassOf(typeof(Component)) || type.RTIsInterface() ) { + current = current.GetComponent(type); + } + } + return current; + } + + ///Return all GameObjects within specified LayerMask, optionaly excluding specified GameObject + public static IEnumerable FindGameObjectsWithinLayerMask(LayerMask mask, GameObject exclude = null) { + return UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None).Where(x => x != exclude && x.IsInLayerMask(mask)); + } + + ///Return if GameObject is within specified LayerMask + public static bool IsInLayerMask(this GameObject gameObject, LayerMask mask) { + return mask == ( mask | ( 1 << gameObject.layer ) ); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs.meta new file mode 100644 index 0000000..73524bb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/ObjectUtils.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: f0f395190c6ff4641a5de2716acf01a8 +timeCreated: 1554845237 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs new file mode 100644 index 0000000..efdbe0b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs @@ -0,0 +1,101 @@ +using UnityEngine; + +namespace ParadoxNotion +{ + + ///Some common rect utilities + public static class RectUtils + { + + //Get a rect that encapsulates all provided rects + public static Rect GetBoundRect(params Rect[] rects) { + var xMin = float.PositiveInfinity; + var xMax = float.NegativeInfinity; + var yMin = float.PositiveInfinity; + var yMax = float.NegativeInfinity; + + for ( var i = 0; i < rects.Length; i++ ) { + xMin = Mathf.Min(xMin, rects[i].xMin); + xMax = Mathf.Max(xMax, rects[i].xMax); + yMin = Mathf.Min(yMin, rects[i].yMin); + yMax = Mathf.Max(yMax, rects[i].yMax); + } + + return Rect.MinMaxRect(xMin, yMin, xMax, yMax); + } + + //Get a rect that encapsulates all provided positions + public static Rect GetBoundRect(params Vector2[] positions) { + var xMin = float.PositiveInfinity; + var xMax = float.NegativeInfinity; + var yMin = float.PositiveInfinity; + var yMax = float.NegativeInfinity; + + for ( var i = 0; i < positions.Length; i++ ) { + xMin = Mathf.Min(xMin, positions[i].x); + xMax = Mathf.Max(xMax, positions[i].x); + yMin = Mathf.Min(yMin, positions[i].y); + yMax = Mathf.Max(yMax, positions[i].y); + } + + return Rect.MinMaxRect(xMin, yMin, xMax, yMax); + } + + ///Rect a fully encapsulated b? + public static bool Encapsulates(this Rect a, Rect b) { + return a.x < b.x && a.xMax > b.xMax && a.y < b.y && a.yMax > b.yMax; + } + + ///Expands rect by margin + public static Rect ExpandBy(this Rect rect, float margin) { + return rect.ExpandBy(margin, margin); + } + + ///Expands rect by x-y margin + public static Rect ExpandBy(this Rect rect, float xMargin, float yMargin) { + return rect.ExpandBy(xMargin, yMargin, xMargin, yMargin); + } + + ///Expands rect by x-y margin + public static Rect ExpandBy(this Rect rect, float left, float top, float right, float bottom) { + return Rect.MinMaxRect(rect.xMin - left, rect.yMin - top, rect.xMax + right, rect.yMax + bottom); + } + + //Transforms rect from one container to another container rect + public static Rect TransformSpace(this Rect rect, Rect oldContainer, Rect newContainer) { + var result = new Rect(); + result.xMin = Mathf.Lerp(newContainer.xMin, newContainer.xMax, Mathf.InverseLerp(oldContainer.xMin, oldContainer.xMax, rect.xMin)); + result.xMax = Mathf.Lerp(newContainer.xMin, newContainer.xMax, Mathf.InverseLerp(oldContainer.xMin, oldContainer.xMax, rect.xMax)); + result.yMin = Mathf.Lerp(newContainer.yMin, newContainer.yMax, Mathf.InverseLerp(oldContainer.yMin, oldContainer.yMax, rect.yMin)); + result.yMax = Mathf.Lerp(newContainer.yMin, newContainer.yMax, Mathf.InverseLerp(oldContainer.yMin, oldContainer.yMax, rect.yMax)); + return result; + } + + //Transforms vector from one container to another container rect + public static Vector2 TransformSpace(this Vector2 vector, Rect oldContainer, Rect newContainer) { + var result = new Vector2(); + result.x = Mathf.Lerp(newContainer.xMin, newContainer.xMax, Mathf.InverseLerp(oldContainer.xMin, oldContainer.xMax, vector.x)); + result.y = Mathf.Lerp(newContainer.yMin, newContainer.yMax, Mathf.InverseLerp(oldContainer.yMin, oldContainer.yMax, vector.y)); + return result; + } + +#if UNITY_EDITOR + ///A debug rect with values + public static void DrawDebugRect(Rect rect, string label = "", Color color = default(Color)) { + GUI.color = color == default(Color) ? Color.yellow : color; + GUI.DrawTexture(rect, Texture2D.whiteTexture); + GUI.color = Color.white; + rect = rect.ExpandBy(-5); + GUI.DrawTexture(rect, Texture2D.whiteTexture); + GUI.color = Color.black; + GUI.Label(rect, rect.x.ToString(), ParadoxNotion.Design.Styles.leftLabel); + GUI.Label(rect, rect.y.ToString(), ParadoxNotion.Design.Styles.topCenterLabel); + GUI.Label(rect, string.Format("{0}\nWidth:{1}", rect.xMax.ToString(), rect.width.ToString()), ParadoxNotion.Design.Styles.rightLabel); + GUI.Label(rect, string.Format("{0}\nHeight:{1}", rect.yMax.ToString(), rect.height.ToString()), ParadoxNotion.Design.Styles.bottomCenterLabel); + GUI.Label(rect, label, ParadoxNotion.Design.Styles.centerLabel); + GUI.color = Color.white; + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs.meta new file mode 100644 index 0000000..8869430 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/RectUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d0ac88c2f434d3408159d67beee3640 +timeCreated: 1475332250 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs new file mode 100644 index 0000000..4b213d4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs @@ -0,0 +1,241 @@ +using UnityEngine; +using System.Collections.Generic; +using System.Linq; +using System; +using System.Text.RegularExpressions; + +namespace ParadoxNotion +{ + + ///Some common string utilities + public static class StringUtils + { + + public const string SPACE = " "; + public const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + public static readonly char[] CHAR_SPACE_ARRAY = new char[] { ' ' }; + private static Dictionary splitCaseCache = new Dictionary(StringComparer.Ordinal); + + ///Convert camelCase to words. + public static string SplitCamelCase(this string s) { + if ( string.IsNullOrEmpty(s) ) { return s; } + + string result; + if ( splitCaseCache.TryGetValue(s, out result) ) { + return result; + } + + result = s; + var underscoreIndex = result.IndexOf('_'); + if ( underscoreIndex <= 1 ) { + result = result.Substring(underscoreIndex + 1); + } + result = Regex.Replace(result, "(?<=[a-z])([A-Z])", " $1").CapitalizeFirst().Trim(); + return splitCaseCache[s] = result; + } + + ///Capitalize first letter + public static string CapitalizeFirst(this string s) { + if ( string.IsNullOrEmpty(s) ) { return s; } + return s.First().ToString().ToUpper() + s.Substring(1); + } + + ///Caps the length of a string to max length and adds "..." if more. + public static string CapLength(this string s, int max) { + if ( string.IsNullOrEmpty(s) || s.Length <= max || max <= 3 ) { return s; } + var result = s.Substring(0, Mathf.Min(s.Length, max) - 3); + result += "..."; + return result; + } + + ///Gets only the capitals of the string trimmed. + public static string GetCapitals(this string s) { + if ( string.IsNullOrEmpty(s) ) { + return string.Empty; + } + var result = ""; + foreach ( var c in s ) { + if ( char.IsUpper(c) ) { + result += c.ToString(); + } + } + result = result.Trim(); + return result; + } + + ///Formats input to error + public static string FormatError(this string input) { + return string.Format("* {0} *", input); + } + + ///Returns the alphabet letter based on it's index. + public static string GetAlphabetLetter(int index) { + if ( index < 0 ) { + return null; + } + + if ( index >= ALPHABET.Length ) { + return index.ToString(); + } + + return ALPHABET[index].ToString(); + } + + ///Get the string result within first from and last to + public static string GetStringWithinOuter(this string input, char from, char to) { + var start = input.IndexOf(from) + 1; + var end = input.LastIndexOf(to); + if ( start < 0 || end < start ) { return null; } + return input.Substring(start, end - start); + } + + ///Get the string result within last from and first to + public static string GetStringWithinInner(this string input, char from, char to) { + var end = input.IndexOf(to); + var start = int.MinValue; + for ( var i = 0; i < input.Length; i++ ) { + if ( i > end ) { break; } + if ( input[i] == from ) { start = i; } + } + start += 1; + if ( start < 0 || end < start ) { return null; } + return input.Substring(start, end - start); + } + + ///Replace text within start and end chars based on provided processor + public static string ReplaceWithin(this string text, char startChar, char endChar, System.Func Process) { + var s = text; + var i = 0; + while ( ( i = s.IndexOf(startChar, i) ) != -1 ) { + var end = s.Substring(i + 1).IndexOf(endChar); + var input = s.Substring(i + 1, end); //what's in the chars + var output = s.Substring(i, end + 2); //what should be replaced (includes chars) + var result = Process(input); + s = s.Replace(output, result); + i++; + } + + return s; + } + + ///Returns a simplistic matching score (0-1) vs leaf + optional category. Lower is better so can be used without invert in OrderBy. + public static float ScoreSearchMatch(string input, string leafName, string categoryName = "") { + + if ( input == null || leafName == null ) return float.PositiveInfinity; + if ( categoryName == null ) { categoryName = string.Empty; } + + input = input.ToUpper(); + var inputWords = input.Replace('.', ' ').Split(CHAR_SPACE_ARRAY, StringSplitOptions.RemoveEmptyEntries); + if ( inputWords.Length == 0 ) { + return 1; + } + + leafName = leafName.ToUpper(); + var firstLeafWord = leafName.Split(CHAR_SPACE_ARRAY, StringSplitOptions.RemoveEmptyEntries)[0]; + leafName = leafName.Replace(" ", string.Empty); + + if ( input.LastOrDefault() == '.' ) { + leafName = categoryName.ToUpper().Replace(" ", string.Empty); + } + + //remember lower is better + var score = 1f; + + if ( categoryName.Contains(inputWords[0]) ) { + score *= 0.9f; + } + + if ( firstLeafWord == inputWords[inputWords.Length - 1] ) { + score *= 0.5f; + } + + if ( leafName.StartsWith(inputWords[0]) ) { + score *= 0.5f; + } + + if ( leafName.StartsWith(inputWords[inputWords.Length - 1]) ) { + score *= 0.5f; + } + + return score; + } + + ///Returns whether or not the input is valid for a search match vs the leaf + optional category. + public static bool SearchMatch(string input, string leafName, string categoryName = "") { + + if ( input == null || leafName == null ) return false; + if ( categoryName == null ) { categoryName = string.Empty; } + + if ( leafName.Length <= 1 && input.Length <= 2 ) { + string alias = null; //usually only operator like searches are less than 2 + if ( ReflectionTools.op_CSharpAliases.TryGetValue(input, out alias) ) { + return alias == leafName; + } + } + + if ( input.Length <= 1 ) { + return input == leafName; + } + + //ignore case + input = input.ToUpper(); + leafName = leafName.ToUpper().Replace(" ", string.Empty); + categoryName = categoryName.ToUpper().Replace(" ", string.Empty); + var fullPath = categoryName + "/" + leafName; + + //treat dot as spaces and split to words + var words = input.Replace('.', ' ').Split(CHAR_SPACE_ARRAY, StringSplitOptions.RemoveEmptyEntries); + if ( words.Length == 0 ) { + return false; + } + + //last input char check + if ( input.LastOrDefault() == '.' ) { + return categoryName.Contains(words[0]); + } + + //check match for sequential occurency + var leftover = fullPath; + for ( var i = 0; i < words.Length; i++ ) { + var word = words[i]; + + if ( !leftover.Contains(word) ) { + return false; + } + + leftover = leftover.Substring(leftover.IndexOf(word) + word.Length); + } + + //last word should also be contained in leaf name regardless + var lastWord = words[words.Length - 1]; + return leafName.Contains(lastWord); + } + + ///A more complete ToString version + public static string ToStringAdvanced(this object o) { + + if ( o == null || o.Equals(null) ) { + return "NULL"; + } + + if ( o is string ) { + return string.Format("\"{0}\"", (string)o); + } + + if ( o is UnityEngine.Object ) { + return ( o as UnityEngine.Object ).name; + } + + var t = o.GetType(); + if ( t.RTIsSubclassOf(typeof(System.Enum)) ) { + if ( t.RTIsDefined(true) ) { + if ( o.ToString() == "0" ) { return "Nothing"; } + if ( o.ToString() == "-1" ) { return "Everything"; } + if ( o.ToString().Contains(',') ) { return "Mixed..."; } + } + } + + return o.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs.meta new file mode 100644 index 0000000..c537126 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Utility/StringUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e1130933ca4e31c47b0dbc7caef2f59a +timeCreated: 1425770601 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs new file mode 100644 index 0000000..e9b6013 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; + +namespace ParadoxNotion +{ + + ///A simple weak reference list + public class WeakReferenceList where T : class + { + private List> list; + + public int Count => list.Count; + + public WeakReferenceList() { + list = new List>(); + } + + public WeakReferenceList(int capacity) { + list = new List>(capacity); + } + + public T this[int i] { + get + { + list[i].TryGetTarget(out T reference); + return reference; + } + set + { + list[i].SetTarget(value); + } + } + + public void Add(T item) { + list.Add(new WeakReference(item)); + } + + public void Remove(T item) { + for ( var i = list.Count; i-- > 0; ) { + var element = list[i]; + if ( element.TryGetTarget(out T reference) && ReferenceEquals(reference, item) ) { + list.Remove(element); + } + } + } + + public bool Contains(T item, out int index) { + for ( var i = 0; i < list.Count; i++ ) { + if ( list[i].TryGetTarget(out T target) && ReferenceEquals(target, item) ) { + index = i; + return true; + } + } + index = -1; + return false; + } + + public void Clear() { + list.Clear(); + } + + public List ToReferenceList() { + var result = new List(); + for ( var i = 0; i < list.Count; i++ ) { + var element = list[i]; + if ( element.TryGetTarget(out T reference) ) { + result.Add(reference); + } + } + return result; + } + + public static implicit operator WeakReferenceList(List value) { + var result = new WeakReferenceList(value.Count); + for ( var i = 0; i < value.Count; i++ ) { + result.Add(value[i]); + } + return result; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs.meta new file mode 100644 index 0000000..d3d7041 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceList.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91a1e02843645974eb6e5e2a00682fb3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs new file mode 100644 index 0000000..da83e20 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; + +namespace ParadoxNotion +{ + ///A simple weak reference table (because Mono has a bug with ConditionalWeakTable) + public class WeakReferenceTable where TKey : class where TValue : IDisposable + { + private List> keys; + private List values; + + public int Count => keys.Count; + + public WeakReferenceTable() { + keys = new List>(); + values = new List(); + } + + public void Clear() { + keys.Clear(); + values.Clear(); + } + + public void Add(TKey key, TValue value) { + CheckCount(); + keys.Insert(0, new WeakReference(key)); + values.Insert(0, value); + } + + public void Remove(TKey key) { + CheckCount(); + for ( var i = keys.Count; i-- > 0; ) { + if ( keys[i].TryGetTarget(out TKey _k) && ReferenceEquals(_k, key) ) { + keys.RemoveAt(i); + values[i].Dispose(); + values.RemoveAt(i); + } + } + } + + public bool TryGetValueWithRefCheck(TKey key, out TValue value) { + CheckCount(); + for ( var i = keys.Count; i-- > 0; ) { + TKey _k; + if ( !keys[i].TryGetTarget(out _k) ) { + keys.RemoveAt(i); + values[i].Dispose(); + values.RemoveAt(i); + } + if ( ReferenceEquals(_k, key) ) { + value = values[i]; + return true; + } + } + value = default(TValue); + return false; + } + + public void RemoveMissingReferences() { + CheckCount(); + for ( var i = keys.Count; i-- > 0; ) { + if ( !keys[i].TryGetTarget(out TKey _k) ) { + keys.RemoveAt(i); + values[i].Dispose(); + values.RemoveAt(i); + } + } + } + + void CheckCount() { + if ( keys.Count != values.Count ) { throw new Exception("Mismatched indeces"); } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs.meta new file mode 100644 index 0000000..e736fa1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/WeakReferenceTable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4154bc7f8c15a44bb8925ef74e594b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework.meta new file mode 100644 index 0000000..ad79c5f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: db108d81d17994548b7c6fbc7398262b +folderAsset: yes +timeCreated: 1540586389 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design.meta new file mode 100644 index 0000000..7ecbe15 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 10ba45a5b4cb5be40bcaf02f335654ab +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs new file mode 100644 index 0000000..cf0cb5d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs @@ -0,0 +1,26 @@ +using System; + +namespace NodeCanvas.Framework +{ + ///An attribute to help with URLs in the welcome window. Thats all. + [AttributeUsage(AttributeTargets.Class)] + public class GraphInfoAttribute : Attribute + { + public string packageName; + public string docsURL; + public string resourcesURL; + public string forumsURL; + } + + ///Used on top of IGraphAssignable nodes to specify the target type for DragDrop operations It can be used on top of other node types if the graph checks for that (see GraphEditorUtility.GetDropedReferenceNodeTypes) + [System.AttributeUsage(System.AttributeTargets.Class)] + public class DropReferenceType : System.Attribute + { + public readonly System.Type type; + public DropReferenceType(System.Type type) { this.type = type; } + } + + ///Marks the BBParameter possible to only pick values from a blackboard. + [AttributeUsage(AttributeTargets.Field)] + public class BlackboardOnlyAttribute : Attribute { } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs.meta new file mode 100644 index 0000000..c075080 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Attributes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b7c164f2e87676489ab445cbd7a39e4 +timeCreated: 1509594799 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor.meta new file mode 100644 index 0000000..8978b05 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 469479b76ee444c4cb88858f2ec8d3e0 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs new file mode 100644 index 0000000..90e92ce --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs @@ -0,0 +1,43 @@ +#if UNITY_EDITOR + +using UnityEditor; +using NodeCanvas.Framework; +using ParadoxNotion.Design; + +namespace NodeCanvas.Editor +{ + ///Handles post processing of graph assets + public class GraphAssetPostProcessor + { + + [InitializeOnLoadMethod] + static void PreInit() { + EditorApplication.delayCall -= Init; + EditorApplication.delayCall += Init; + } + + static void Init() { + //we track graph assets so that we can access them on a diff thread + AssetTracker.BeginTrackingAssetsOfType(typeof(Graph)); + ParadoxNotion.Design.AssetTracker.onAssetsImported -= OnAssetsImported; + ParadoxNotion.Design.AssetTracker.onAssetsImported += OnAssetsImported; + } + + static void OnAssetsImported(string[] paths) { + foreach ( var path in paths ) { + var asset = AssetDatabase.LoadAssetAtPath(path, typeof(UnityEngine.TextAsset)); + if ( asset is UnityEngine.TextAsset ) { + var textAsset = (UnityEngine.TextAsset)asset; + foreach ( var pair in AssetTracker.trackedAssets ) { + if ( pair.Value is Graph && ( pair.Value as Graph ).externalSerializationFile == asset ) { + ( pair.Value as Graph ).Deserialize(textAsset.text, null, true); + break; + } + } + } + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs.meta new file mode 100644 index 0000000..b133573 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/GraphAssetPostProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e8e0d299f29cf64eb5169af124c1b49 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs new file mode 100644 index 0000000..9050948 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs @@ -0,0 +1,32 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + [UnityEditor.InitializeOnLoad] + static class HierarchyIcons + { + static HierarchyIcons() { + EditorApplication.hierarchyWindowItemOnGUI -= ShowIcon; + EditorApplication.hierarchyWindowItemOnGUI += ShowIcon; + } + + static void ShowIcon(int ID, Rect r) { + if ( !Prefs.showHierarchyIcons ) { + return; + } + var go = EditorUtility.InstanceIDToObject(ID) as GameObject; + if ( go == null ) return; + var owner = go.GetComponent(); + if ( owner == null ) return; + r.xMin = r.xMax - 16; + GUI.DrawTexture(r, StyleSheet.canvasIcon); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs.meta new file mode 100644 index 0000000..396d42d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/HierarchyIcons.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d8bfe2f6dbcc9c14babb3e4e924f33b2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors.meta new file mode 100644 index 0000000..8473799 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c435620dc23b76e48a1535e3db00d664 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs new file mode 100644 index 0000000..59a572c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs @@ -0,0 +1,23 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEditor; + +namespace NodeCanvas.Editor +{ + [CustomEditor(typeof(AssetBlackboard))] + public class AssetBlackboardInspector : UnityEditor.Editor + { + + private AssetBlackboard bb { get { return (AssetBlackboard)target; } } + + public override void OnInspectorGUI() { + BlackboardEditor.ShowVariables(bb); + EditorUtils.EndOfInspector(); + Repaint(); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs.meta new file mode 100644 index 0000000..23d41bd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/AssetBlackboardInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3847b873f696e44479d6495e9ba13c60 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs new file mode 100644 index 0000000..e6c1993 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs @@ -0,0 +1,40 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(Blackboard))] + public class BlackboardInspector : UnityEditor.Editor + { + + private Blackboard bb { get { return (Blackboard)target; } } + + private SerializedProperty parentBlackboardProp; + + void OnEnable() { + parentBlackboardProp = serializedObject.FindProperty("_parentBlackboard"); + } + + public override void OnInspectorGUI() { + GUI.color = GUI.color.WithAlpha(parentBlackboardProp.objectReferenceValue ? 1 : 0.6f); + EditorGUILayout.PropertyField(parentBlackboardProp, EditorUtils.GetTempContent("Parent Asset Blackboard", null, "Optional Parent Asset Blackboard to 'inherit' variables from.")); + serializedObject.ApplyModifiedProperties(); + GUI.color = Color.white; + + BlackboardEditor.ShowVariables(bb); + EditorUtils.EndOfInspector(); + if ( Event.current.isMouse ) { + Repaint(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs.meta new file mode 100644 index 0000000..e11825d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/BlackboardInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca961a4d1f187b24aa66cbd4934a670a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs new file mode 100644 index 0000000..fccce9a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs @@ -0,0 +1,47 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(GlobalBlackboard))] + public class GlobalBlackboardInspector : UnityEditor.Editor + { + + private GlobalBlackboard bb { get { return (GlobalBlackboard)target; } } + + private SerializedProperty dontDestroyProp; + private SerializedProperty identifierProp; + private SerializedProperty destroyDupProp; + + void OnEnable() { + dontDestroyProp = serializedObject.FindProperty("_dontDestroyOnLoad"); + identifierProp = serializedObject.FindProperty("_identifier"); + destroyDupProp = serializedObject.FindProperty("_singletonMode"); + } + + public override void OnInspectorGUI() { + + EditorGUILayout.PropertyField(identifierProp); + var existing = GlobalBlackboard.Find(bb.name); + if ( existing != bb && existing != null && !EditorUtility.IsPersistent(bb) ) { + EditorUtils.MarkLastFieldError("Another Global Blackboard has the same identifier name. Please rename either."); + } + EditorGUILayout.PropertyField(destroyDupProp); + EditorGUILayout.PropertyField(dontDestroyProp); + + BlackboardEditor.ShowVariables(bb); + EditorUtils.EndOfInspector(); + serializedObject.ApplyModifiedProperties(); + if ( Event.current.isMouse ) { + Repaint(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs.meta new file mode 100644 index 0000000..93ad27f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GlobalBlackboardInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e661f067321a0e41b08138218f92c00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs new file mode 100644 index 0000000..2961935 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs @@ -0,0 +1,62 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(Graph), true)] + public class GraphInspector : UnityEditor.Editor + { + + private Graph graph => (Graph)target; + + public override void OnInspectorGUI() { + UndoUtility.CheckUndo(this, "Graph Inspector"); + ShowBasicGUI(); + EditorUtils.Separator(); + + if ( graph.externalSerializationFile == null ) { + if ( GUILayout.Button("Create External Serialization Text Asset") ) { + var path = EditorUtility.SaveFilePanelInProject("Create Text Asset", target.name, "txt", ""); + if ( !string.IsNullOrEmpty(path) ) { + System.IO.File.WriteAllText(path, ParadoxNotion.Serialization.JSONSerializer.PrettifyJson(graph.GetSerializedJsonData())); + AssetDatabase.Refresh(); + graph.externalSerializationFile = AssetDatabase.LoadAssetAtPath(path); + } + } + } else { + graph.externalSerializationFile = (TextAsset)EditorGUILayout.ObjectField("External Serialization File", graph.externalSerializationFile, typeof(TextAsset), true); + EditorGUILayout.HelpBox("Be careful! The assigned Text Asset contents will be completely replaced with the json serialization of this graph. The graph will also deserialize from the json contents of the Text Asset whenever the Text Asset is imported by Unity. You can remove the assigned file at any time.", MessageType.Warning); + } + + EditorUtils.Separator(); + BlackboardEditor.ShowVariables(graph.blackboard, graph); + EditorUtils.EndOfInspector(); + UndoUtility.CheckDirty(this); + } + + //name, description, edit button + void ShowBasicGUI() { + GUILayout.Space(10); + graph.category = GUILayout.TextField(graph.category); + EditorUtils.CommentLastTextField(graph.category, "Category..."); + + graph.comments = GUILayout.TextArea(graph.comments, GUILayout.Height(45)); + EditorUtils.CommentLastTextField(graph.comments, "Comments..."); + + GUI.backgroundColor = Colors.lightBlue; + if ( GUILayout.Button(string.Format("EDIT {0}", graph.GetType().Name.SplitCamelCase().ToUpper())) ) { + GraphEditor.OpenWindow(graph); + } + GUI.backgroundColor = Color.white; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs.meta new file mode 100644 index 0000000..667bef4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d52acdd82da63f14bbaacf264f1b02e8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs new file mode 100644 index 0000000..d2320e7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs @@ -0,0 +1,447 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(GraphOwner), true)] + public class GraphOwnerInspector : UnityEditor.Editor + { + + private GraphOwner owner { get { return (GraphOwner)target; } } + + private SerializedProperty boundGraphSerializationProp; + private SerializedProperty boundGraphReferencesProp; + private SerializedProperty graphProp; + private SerializedProperty blackboardProp; + private SerializedProperty firstActivationProp; + private SerializedProperty enableActionProp; + private SerializedProperty disableActionProp; + private SerializedProperty sourceProp; + private SerializedProperty categoryProp; + private SerializedProperty commentsProp; + private SerializedProperty lockPrefabProp; + private SerializedProperty preInitProp; + private SerializedProperty updateModeProp; + private SerializedProperty exposeParamsProp; + + private string graphTypeName { + get { return owner.graphType.Name.SplitCamelCase(); } + } + + private bool isOwnerPeristant { + get { return EditorUtility.IsPersistent(owner); } + } + + public bool isBoundGraphOnPrefabRoot { + get { return isOwnerPeristant && owner.graphIsBound; } + } + + public bool isBoundGraphOnPrefabInstance { + get { return !isOwnerPeristant && owner.graphIsBound && PrefabUtility.IsPartOfAnyPrefab(owner); } + } + + public bool isBoundGraphPrefabOverridden { + get { return boundGraphSerializationProp.prefabOverride; } + } + + ///---------------------------------------------------------------------------------------------- + + void OnDestroy() { + //just a little trick to destroy graph and not left editing a floating one + if ( owner == null && !ReferenceEquals(owner, null) && owner.graph != null ) { + if ( owner.graphIsBound ) { + Undo.DestroyObjectImmediate(owner.graph); + } + } + } + + void OnEnable() { + boundGraphSerializationProp = serializedObject.FindProperty("_boundGraphSerialization"); + boundGraphReferencesProp = serializedObject.FindProperty("_boundGraphObjectReferences"); + graphProp = serializedObject.FindProperty("_graph"); + blackboardProp = serializedObject.FindProperty("_blackboard"); + firstActivationProp = serializedObject.FindProperty("_firstActivation"); + enableActionProp = serializedObject.FindProperty("_enableAction"); + disableActionProp = serializedObject.FindProperty("_disableAction"); + sourceProp = serializedObject.FindProperty("_boundGraphSource"); + categoryProp = sourceProp.FindPropertyRelative("_category"); + commentsProp = sourceProp.FindPropertyRelative("_comments"); + lockPrefabProp = serializedObject.FindProperty("_lockBoundGraphPrefabOverrides"); + preInitProp = serializedObject.FindProperty("_preInitializeSubGraphs"); + updateModeProp = serializedObject.FindProperty("_updateMode"); + exposeParamsProp = serializedObject.FindProperty("_serializedExposedParameters"); + } + + //create new graph asset and assign it to owner + public Graph NewAsAsset() { + var newGraph = (Graph)EditorUtils.CreateAsset(owner.graphType); + if ( newGraph != null ) { + UndoUtility.RecordObject(owner, "New Asset Graph"); + owner.graph = newGraph; + UndoUtility.SetDirty(owner); + UndoUtility.SetDirty(newGraph); + AssetDatabase.SaveAssets(); + } + return newGraph; + } + + //create new local graph and assign it to owner + public Graph NewAsBound() { + var newGraph = (Graph)ScriptableObject.CreateInstance(owner.graphType); + UndoUtility.RecordObject(owner, "New Bound Graph"); + owner.SetBoundGraphReference(newGraph); + UndoUtility.SetDirty(owner); + return newGraph; + } + + //Bind graph to owner + public void AssetToBound() { + UndoUtility.RecordObject(owner, "Bind Asset Graph"); + owner.SetBoundGraphReference(owner.graph); + UndoUtility.SetDirty(owner); + } + + //Revert bound graph + public void PrefabRevertBoundGraph() { + UndoUtility.RecordObject(owner, "Revert Graph From Prefab"); + var prefabAssetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(owner); + PrefabUtility.RevertPropertyOverride(boundGraphSerializationProp, InteractionMode.UserAction); + PrefabUtility.RevertPropertyOverride(boundGraphReferencesProp, InteractionMode.UserAction); + GraphEditorUtility.activeElement = null; + UndoUtility.SetDirty(owner); + GraphEditor.FullDrawPass(); + } + + //Apply bound graph + public void PrefabApplyBoundGraph() { + UndoUtility.RecordObject(owner, "Apply Graph To Prefab"); + var prefabAssetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(owner); + PrefabUtility.ApplyPropertyOverride(boundGraphSerializationProp, prefabAssetPath, InteractionMode.UserAction); + PrefabUtility.ApplyPropertyOverride(boundGraphReferencesProp, prefabAssetPath, InteractionMode.UserAction); + UndoUtility.SetDirty(owner); + } + + ///---------------------------------------------------------------------------------------------- + + //... + public override void OnInspectorGUI() { + + DoPrefabRelatedGUI(); + + if ( owner.graph == null && !owner.graphIsBound ) { + DoMissingGraphControls(); + serializedObject.ApplyModifiedProperties(); + return; + } + + EditorGUI.BeginChangeCheck(); + DoValidGraphControls(); + DoStandardFields(); + + GUI.enabled = ( !isBoundGraphOnPrefabInstance || !owner.lockBoundGraphPrefabOverrides ) && !isBoundGraphOnPrefabRoot; + OnPreExtraGraphOptions(); + GUI.enabled = true; + if ( EditorGUI.EndChangeCheck() && owner.graph != null ) { + UndoUtility.RecordObject(owner.graph, "Sub Option Change"); + owner.graph.SelfSerialize(); + UndoUtility.SetDirty(owner.graph); + } + EditorUtils.ReflectedObjectInspector(owner, owner); + + DoExposedVariablesMapping(); + DoRuntimeGraphControls(); + + OnPostExtraGraphOptions(); + EditorUtils.EndOfInspector(); + serializedObject.ApplyModifiedProperties(); + } + + ///---------------------------------------------------------------------------------------------- + + //... + void DoPrefabRelatedGUI() { + + //show lock bound graph prefab overrides + if ( owner.graphIsBound ) { + var case1 = PrefabUtility.IsPartOfPrefabAsset(owner) || UnityEditor.SceneManagement.PrefabStageUtility.GetCurrentPrefabStage()?.prefabContentsRoot == owner.gameObject; + var case2 = PrefabUtility.IsPartOfAnyPrefab(owner) && !isBoundGraphPrefabOverridden; + if ( case1 || case2 ) { EditorGUILayout.PropertyField(lockPrefabProp, EditorUtils.GetTempContent("Lock Prefab Graph Overrides")); } + } + + //show bound graph prefab overrides controls + if ( isBoundGraphPrefabOverridden ) { + GUILayout.Space(5); + GUI.color = Colors.prefabOverrideColor; + GUILayout.BeginHorizontal(); + GUI.color = Color.white; + var content = EditorUtils.GetTempContent("Bound Graph is prefab overridden.", StyleSheet.canvasIcon); + GUILayout.Label(content, Styles.topLeftLabel); + if ( GUILayout.Button("Revert Graph", EditorStyles.miniButtonLeft, GUILayout.Width(100)) ) { + PrefabRevertBoundGraph(); + } + if ( GUILayout.Button("Apply Graph", EditorStyles.miniButtonRight, GUILayout.Width(100)) ) { + PrefabApplyBoundGraph(); + } + GUILayout.EndHorizontal(); + EditorUtils.MarkLastFieldOverride(); + GUILayout.Space(5); + } + } + + //... + void DoMissingGraphControls() { + EditorGUILayout.HelpBox(owner.GetType().Name + " needs a " + graphTypeName + ".\nAssign or Create a new one...", MessageType.Info); + if ( !Application.isPlaying && GUILayout.Button("CREATE NEW") ) { + Graph newGraph = null; + if ( EditorUtility.DisplayDialog("Create Graph", "Create a Bound or an Asset Graph?\n\n" + + "Bound Graph is saved with the GraphOwner and you can use direct scene references within it.\n\n" + + "Asset Graph is an asset file and can be reused amongst any number of GraphOwners.\n\n" + + "You can convert from one type to the other at any time.", + "Bound", "Asset") ) { + + newGraph = NewAsBound(); + + } else { + + newGraph = NewAsAsset(); + } + + if ( newGraph != null ) { + owner.Validate(); + GraphEditor.OpenWindow(owner); + } + } + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(graphProp, new GUIContent(graphTypeName)); + if ( EditorGUI.EndChangeCheck() ) { owner.Validate(); } + } + + //... + void DoValidGraphControls() { + + //Graph comments ONLY if Bound graph else readonly + if ( owner.graph != null ) { + if ( owner.graphIsBound ) { + GUI.contentColor = Color.white.WithAlpha(0.6f); + owner.graph.comments = GUILayout.TextArea(owner.graph.comments, GUILayout.Height(45)); + GUI.contentColor = Color.white; + EditorUtils.CommentLastTextField(owner.graph.comments, "Graph comments..."); + } else { + GUI.enabled = false; + GUILayout.TextArea(owner.graph.comments, GUILayout.Height(45)); + GUI.enabled = true; + } + } + + if ( !isBoundGraphOnPrefabRoot ) { + + //Open behaviour + GUI.backgroundColor = Colors.lightBlue; + if ( GUILayout.Button(( "Edit " + owner.graphType.Name.SplitCamelCase() ).ToUpper()) ) { + GraphEditor.OpenWindow(owner); + } + GUI.backgroundColor = Color.white; + + } else { + + EditorGUILayout.HelpBox("Bound Graphs on prefabs can only be edited by opening the prefab in the prefab editor.", MessageType.Info); + + //Open prefab and behaviour + GUI.backgroundColor = Colors.lightBlue; + if ( GUILayout.Button(( "Open Prefab And Edit " + owner.graphType.Name.SplitCamelCase() ).ToUpper()) ) { + AssetDatabase.OpenAsset(owner); + GraphEditor.OpenWindow(owner); + } + GUI.backgroundColor = Color.white; + } + + //bind asset or delete bound graph + if ( !Application.isPlaying ) { + if ( !owner.graphIsBound ) { + if ( GUILayout.Button("Bind Graph") ) { + if ( EditorUtility.DisplayDialog("Bind Graph", "This will make a local copy of the graph, bound to the owner.\n\nThis allows you to make local changes and assign scene object references directly.\n\nNote that you can also use scene object references through the use of Blackboard Variables.\n\nBind Graph?", "YES", "NO") ) { + AssetToBound(); + } + } + } else { + if ( GUILayout.Button("Delete Bound Graph") ) { + if ( EditorUtility.DisplayDialog("Delete Bound Graph", "Are you sure?", "YES", "NO") ) { + Object.DestroyImmediate(owner.graph, true); + UndoUtility.RecordObject(owner, "Delete Bound Graph"); + owner.SetBoundGraphReference(null); + UndoUtility.SetDirty(owner); + } + } + } + } + } + + //... + void DoStandardFields() { + //basic options + if ( Application.isPlaying || !owner.graphIsBound ) { + EditorGUILayout.PropertyField(graphProp, EditorUtils.GetTempContent(graphTypeName)); + } + + var rect = EditorGUILayout.GetControlRect(); + var label = EditorGUI.BeginProperty(rect, EditorUtils.GetTempContent("Blackboard"), blackboardProp); + EditorGUI.BeginChangeCheck(); + owner.blackboard = (IBlackboard)EditorGUI.ObjectField(rect, label, owner.blackboard as Object, typeof(IBlackboard), true); + if ( EditorGUI.EndChangeCheck() ) { UndoUtility.SetDirty(owner); } + EditorGUI.EndProperty(); + if ( owner.blackboard == null ) { EditorUtils.MarkLastFieldWarning("No Blackboard assigned. This is fine if you only want to use Graph Blackboard Variables."); } + + EditorGUILayout.PropertyField(firstActivationProp); + EditorGUILayout.PropertyField(enableActionProp, EditorUtils.GetTempContent("On Enable")); + EditorGUILayout.PropertyField(disableActionProp, EditorUtils.GetTempContent("On Disable")); + EditorGUILayout.PropertyField(updateModeProp); + EditorGUILayout.PropertyField(preInitProp); + } + + //... + void DoExposedVariablesMapping() { + + if ( owner.graph == null ) { return; } + + var separatorDrawn = false; + var subTreeVariables = owner.graph.blackboard.variables.Values; + foreach ( var variable in subTreeVariables ) { + + if ( variable is Variable ) { continue; } + if ( !variable.isExposedPublic || variable.isPropertyBound ) { continue; } + + if ( !separatorDrawn ) { + separatorDrawn = true; + EditorUtils.Separator(); + GUILayout.Label("▼ Exposed Graph Blackboard Variables"); + EditorGUILayout.HelpBox("Use the arrows button to override/parametrize a variable. Doing this will not change the graph serialization. Prefab overrides are also supported.", MessageType.None); + } + + if ( owner.exposedParameters == null ) { owner.exposedParameters = new System.Collections.Generic.List(); } + var exposedParam = owner.exposedParameters.Find(x => x.targetVariableID == variable.ID); + if ( exposedParam == null ) { + GUILayout.BeginHorizontal(); + GUI.enabled = false; + EditorUtils.DrawEditorFieldDirect(new GUIContent(variable.name, "This is an Exposed Public variable of the graph local blackboard. You can use the arrows button on the right side to override/parametrize the default value."), variable.value, variable.varType, default(InspectedFieldInfo)); + GUI.enabled = true; + if ( GUILayout.Button(EditorUtils.GetTempContent("▽△", null, "Override Variable"), Styles.centerLabel, GUILayout.Width(24)) ) { + UndoUtility.RecordObject(owner, "Add Override"); + exposedParam = ExposedParameter.CreateInstance(variable); + owner.exposedParameters.Add(exposedParam); + // DISABLE: was creating confusion when editing multiple graphowner instances using asset graphs and having different variable overrides + // exposedParam.Bind(owner.graph.blackboard); + UndoUtility.SetDirty(owner); + } + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + GUILayout.EndHorizontal(); + continue; + } + + GUILayout.BeginHorizontal(); + var info = new InspectedFieldInfo(); + info.unityObjectContext = owner; + exposedParam.valueBoxed = EditorUtils.DrawEditorFieldDirect(new GUIContent(variable.name), exposedParam.valueBoxed, variable.varType, info); + if ( GUILayout.Button(EditorUtils.GetTempContent("▼▲", null, "Remove Override"), Styles.centerLabel, GUILayout.Width(24)) ) { + UndoUtility.RecordObject(owner, "Remove Override"); + // DISABLE: was creating confusion when editing multiple graphowner instances using asset graphs and having different variable overrides + // exposedParam.UnBind(owner.graph.blackboard); + owner.exposedParameters.Remove(exposedParam); + UndoUtility.SetDirty(owner); + continue; + } + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + GUILayout.EndHorizontal(); + + var index = owner.exposedParameters.IndexOf(exposedParam); + var serProp = exposeParamsProp.GetArrayElementAtIndex(index); + var isPrefabOverride = serProp.prefabOverride; + if ( isPrefabOverride ) { + var rect = GUILayoutUtility.GetLastRect(); + EditorUtils.MarkLastFieldOverride(); + if ( rect.Contains(Event.current.mousePosition) && Event.current.type == EventType.ContextClick ) { + var prefabAssetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(owner); + var asset = AssetDatabase.LoadAssetAtPath(prefabAssetPath); + var menu = new GenericMenu(); + menu.AddItem(new GUIContent($"Apply to Prefab '{asset.name}'"), false, () => + { + UndoUtility.RecordObject(owner, "Apply Exposed Parameter"); + UndoUtility.RecordObject(asset, "Apply Exposed Parameter"); + PrefabUtility.ApplyPropertyOverride(serProp, prefabAssetPath, InteractionMode.UserAction); + UndoUtility.SetDirty(owner); + UndoUtility.SetDirty(asset); + }); + menu.AddItem(new GUIContent("Revert"), false, () => + { + UndoUtility.RecordObject(owner, "Revert Exposed Parameter"); + PrefabUtility.RevertPropertyOverride(serProp, InteractionMode.UserAction); + UndoUtility.SetDirty(owner); + }); + menu.ShowAsContext(); + } + } + } + + if ( separatorDrawn ) { EditorUtils.Separator(); } + + //cleanup + if ( owner.exposedParameters != null ) { + for ( var i = owner.exposedParameters.Count; i-- > 0; ) { + var exposedParam = owner.exposedParameters[i]; + var variable = owner.graph.blackboard.GetVariableByID(exposedParam.targetVariableID); + if ( variable == null || !variable.isExposedPublic || variable.isPropertyBound ) { + owner.exposedParameters.RemoveAt(i); + UndoUtility.SetDirty(owner); + } + } + } + } + + //... + void DoRuntimeGraphControls() { + //execution debug controls + if ( Application.isPlaying && owner.graph != null && !isOwnerPeristant ) { + EditorUtils.Separator(); + GUILayout.BeginHorizontal("box"); + GUILayout.FlexibleSpace(); + + GUI.contentColor = EditorGUIUtility.isProSkin ? Color.white : Colors.Grey(0.3f); + + GUI.color = Colors.Grey(owner.isRunning ? 1f : 0.7f); + if ( GUILayout.Button(Icons.playIcon, Styles.buttonLeft) ) { + if ( owner.isRunning ) owner.StopBehaviour(); + else owner.StartBehaviour(); + } + + GUI.color = Colors.Grey(owner.isPaused ? 1f : 0.7f); + if ( GUILayout.Button(Icons.pauseIcon, Styles.buttonMid) ) { + if ( owner.isPaused ) owner.StartBehaviour(); + else owner.PauseBehaviour(); + } + + GUI.color = Colors.Grey(0.7f); + if ( GUILayout.Button(Icons.stepIcon, Styles.buttonRight) ) { + owner.PauseBehaviour(); + owner.UpdateBehaviour(); + } + GUI.color = Color.white; + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + } + + ///---------------------------------------------------------------------------------------------- + + virtual protected void OnPreExtraGraphOptions() { } + virtual protected void OnPostExtraGraphOptions() { } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs.meta new file mode 100644 index 0000000..a384c7b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/GraphOwnerInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a764b5f2b0723d9429b1c1b93acbc5ad +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs new file mode 100644 index 0000000..3f6b60d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs @@ -0,0 +1,51 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using ParadoxNotion.Design; +using ParadoxNotion; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(SignalDefinition))] + public class SignalDefinitionInspector : UnityEditor.Editor + { + + public override void OnInspectorGUI() { + + base.OnInspectorGUI(); + + var def = (SignalDefinition)target; + + if ( GUILayout.Button("Add Parameter") ) { + EditorUtils.ShowPreferedTypesSelectionMenu(typeof(object), (t) => + { + UndoUtility.RecordObjectComplete(def, "Add Parameter"); + def.AddParameter(t.FriendlyName(), t); + UndoUtility.SetDirty(def); + }); + } + + UndoUtility.CheckUndo(def, "Definition"); + var options = new EditorUtils.ReorderableListOptions(); + options.allowRemove = true; + options.unityObjectContext = def; + EditorUtils.ReorderableList(def.parameters, options, (i, picked) => + { + var parameter = def.parameters[i]; + GUILayout.BeginHorizontal(); + parameter.name = UnityEditor.EditorGUILayout.DelayedTextField(parameter.name, GUILayout.Width(150), GUILayout.ExpandWidth(true)); + EditorUtils.ButtonTypePopup("", parameter.type, (t) => { parameter.type = t; }); + GUILayout.EndHorizontal(); + }); + UndoUtility.CheckDirty(def); + + EditorUtils.EndOfInspector(); + if ( Event.current.isMouse ) { Repaint(); } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs.meta new file mode 100644 index 0000000..4e41fca --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Inspectors/SignalDefinitionInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2bfd766d0ff7b1e44aac51ef78cdb0fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources.meta new file mode 100644 index 0000000..7910dc9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c631458208310c348a2c0a715a632834 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png new file mode 100644 index 0000000..f75083e Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png.meta new file mode 100644 index 0000000..a25ba07 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/FlowCanvasHeader.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: a300a01fe7867b14da66d1ef0f75fabe +timeCreated: 1464506051 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: 0 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png new file mode 100644 index 0000000..8ddd343 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png.meta new file mode 100644 index 0000000..740e690 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/GraphOwnerIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b5eeec78a0081094cb8dfeb83808d762 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png new file mode 100644 index 0000000..e3b54b0 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png.meta new file mode 100644 index 0000000..c7b869b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/NodeCanvasHeader.png.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 6c770d0b83409d14d85fee890e129317 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet.meta new file mode 100644 index 0000000..3743f19 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 714002d52ccbcda41a647d6da3ca983d +folderAsset: yes +timeCreated: 1518238904 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset new file mode 100644 index 0000000..3b77925 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset @@ -0,0 +1,1306 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 8 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98dfd102d8f307e4c95aa23beac61c5b, type: 3} + m_Name: StyleSheetDark + m_EditorClassIdentifier: + styles: + window: + m_Name: window + m_Normal: + m_Background: {fileID: 2800000, guid: 242a336043a24b14d8c36fd24f0645b8, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8897059, g: 0.6968326, b: 0.4841047, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 3 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + windowShadow: + m_Name: windowShadow + m_Normal: + m_Background: {fileID: 2800000, guid: e7672af7f07cf104bbb8f3bcad3ee3eb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: c52c9df7a5b254549a1c4cd1f8fbf949, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 9 + m_Right: 10 + m_Top: 7 + m_Bottom: 10 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + windowHighlight: + m_Name: windowHighlight + m_Normal: + m_Background: {fileID: 2800000, guid: 57a27e95edd46b349a1e166548b41b25, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.08823532, g: 0.08823532, b: 0.08823532, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 10 + m_Right: 10 + m_Top: 8 + m_Bottom: 10 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + windowHeader: + m_Name: windowHeader + m_Normal: + m_Background: {fileID: 2800000, guid: 04379e5209d765d4cb1ee2ecb1859174, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7941176, g: 0.7941176, b: 0.7941176, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 2 + m_Right: 2 + m_Top: -1 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + windowTitle: + m_Name: + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 5 + m_Right: 5 + m_Top: 7 + m_Bottom: 5 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + button: + m_Name: button + m_Normal: + m_Background: {fileID: 2800000, guid: df579b6e00e47fe439bc97324e29bd72, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.875, g: 0.875, b: 0.875, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: cb91769b5d2a890449ece3bcf9b8a5ef, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 9ccfbfaa0b6db1c4ea5f4dd3c58c44dc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 5 + m_Right: 5 + m_Top: 5 + m_Bottom: 5 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 5 + m_Right: 5 + m_Top: 5 + m_Bottom: 5 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 1 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + box: + m_Name: box + m_Normal: + m_Background: {fileID: 2800000, guid: ffdae6d737a3f7144b43df3fe24283f4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + labelOnCanvas: + m_Name: + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9191176, g: 0.9191176, b: 0.9191176, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 11 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + commentsBox: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: ffdae6d737a3f7144b43df3fe24283f4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7205882, g: 0.7205882, b: 0.7205882, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 11 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + nodePortContainer: + m_Name: nodePortContainer + m_Normal: + m_Background: {fileID: 2800000, guid: b63e5b34672f6f342a13a6b69cf042b7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + nodePortConnected: + m_Name: nodePortConnected + m_Normal: + m_Background: {fileID: 2800000, guid: e225926bb93fe3041b0e80a0932338de, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 5b40cde50004a6f49b12d170dcde0589, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + nodePortEmpty: + m_Name: nodePortEmpty + m_Normal: + m_Background: {fileID: 2800000, guid: bd66d8018a60ab14c9f709f9b859466e, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: e225926bb93fe3041b0e80a0932338de, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + scaleArrowBR: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: 0b7f371cf14ba2e4fb8950cea79cdf04, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d5f05ae545bba804d8b33a5ee627773f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + scaleArrowTL: + m_Name: scaleArrowTL + m_Normal: + m_Background: {fileID: 2800000, guid: 1e6ff0ccf062cb8479b379c510082c41, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 656bb84157060344f909fbaa223f9000, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + canvasBG: + m_Name: canvasBG + m_Normal: + m_Background: {fileID: 2800000, guid: 8ce37df2e286d614aa44758a60cdb2d6, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 7 + m_Right: 7 + m_Top: 7 + m_Bottom: 7 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 5 + m_Top: 0 + m_Bottom: 3 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 17 + m_FontStyle: 1 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + canvasBorders: + m_Name: canvasBorders + m_Normal: + m_Background: {fileID: 2800000, guid: 5f78f379d2af2c4429b1806dfca160a7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 7 + m_Right: 7 + m_Top: 7 + m_Bottom: 7 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + editorPanel: + m_Name: editorPanel + m_Normal: + m_Background: {fileID: 2800000, guid: 2c8a52e784b60364e840e45e1d61de53, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 0.8602434, b: 0.6102941, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7941176, g: 0.7941176, b: 0.7941176, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 28 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 3 + m_Font: {fileID: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + canvasGroupHeader: + m_Name: canvasGroupHeader + m_Normal: + m_Background: {fileID: 2800000, guid: 2c8a52e784b60364e840e45e1d61de53, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.6981132, g: 0.6981132, b: 0.6981132, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 28 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 1 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 3 + m_Font: {fileID: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 3 + m_ContentOffset: {x: 15, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + hollowBox: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: 7e36b2db229659c479458e70c70ba486, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + icons: + bezierTexture: {fileID: 2800000, guid: fa59896c4cbde034883c84af2008896b, type: 3} + statusSuccess: {fileID: 2800000, guid: a9e48b4e2cc25d448be7194526ae27a3, type: 3} + statusFailure: {fileID: 2800000, guid: 3be8023c9f6e651418165dbf293e4aa1, type: 3} + statusRunning: {fileID: 2800000, guid: 495fbc5e59efec34d81986cc8a166c32, type: 3} + circle: {fileID: 2800000, guid: 5548d8bf75e1829468202cb39a00b463, type: 3} + arrowLeft: {fileID: 2800000, guid: 60b2805cb710fb749b4a8a9463f4eb6a, type: 3} + arrowRight: {fileID: 2800000, guid: a1de6faf586cc2e47b2e090c80dff564, type: 3} + arrowTop: {fileID: 2800000, guid: 4e035b771d4c8594d93c520a1750a81a, type: 3} + arrowBottom: {fileID: 2800000, guid: defe75e89e358ca4793eff3f30c8e73b, type: 3} + genericType: {fileID: 2800000, guid: e7ecacd787686a742a5911a48e6ab8f9, type: 3} + canvasIcon: {fileID: 2800000, guid: 3b3bfaecab3d6184b9513b41f550481a, type: 3} + log: {fileID: 2800000, guid: 7002f50ea12a4f2419d3a22cd2931629, type: 3} + lens: {fileID: 2800000, guid: b70a85fbb4eb7bf46bb6345f7b0ff842, type: 3} + refactor: {fileID: 2800000, guid: deab6b3165ab396408e7333c5580ef74, type: 3} + verboseLevel1: {fileID: 2800000, guid: 54e96ea4c35de7544a6b8f80768337c0, type: 3} + verboseLevel2: {fileID: 2800000, guid: 3cd33e6f1767ed74aa82280df4fb66b7, type: 3} + verboseLevel3: {fileID: 2800000, guid: 25a5033cf1bf9a94096ed81195e713e3, type: 3} diff --git a/Assets/AddressableAssetsData/AssetGroups/Built In Data.asset.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset.meta similarity index 64% rename from Assets/AddressableAssetsData/AssetGroups/Built In Data.asset.meta rename to Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset.meta index 8857eb5..5406d5b 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Built In Data.asset.meta +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetDark.asset.meta @@ -1,5 +1,7 @@ fileFormatVersion: 2 -guid: 7e359b460b93dfb43b03f006407d3059 +guid: 751d266ccd1ee9b4482544063fcded3e +timeCreated: 1541326337 +licenseType: Store NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset new file mode 100644 index 0000000..b354582 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset @@ -0,0 +1,1306 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 8 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98dfd102d8f307e4c95aa23beac61c5b, type: 3} + m_Name: StyleSheetLight + m_EditorClassIdentifier: + styles: + window: + m_Name: window + m_Normal: + m_Background: {fileID: 2800000, guid: 673cd48a419d6c94fbc67d4bc862e05b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8897059, g: 0.6968326, b: 0.4841047, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 237aff356a059f04b8075ed992c6bedb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 237aff356a059f04b8075ed992c6bedb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 2800000, guid: 237aff356a059f04b8075ed992c6bedb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 237aff356a059f04b8075ed992c6bedb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 2800000, guid: 237aff356a059f04b8075ed992c6bedb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.5764706, g: 0.62352943, b: 1, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 23 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 2 + m_Right: 2 + m_Top: 0 + m_Bottom: 2 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + windowShadow: + m_Name: windowShadow + m_Normal: + m_Background: {fileID: 2800000, guid: e7672af7f07cf104bbb8f3bcad3ee3eb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: c52c9df7a5b254549a1c4cd1f8fbf949, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 9 + m_Right: 10 + m_Top: 7 + m_Bottom: 10 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + windowHighlight: + m_Name: windowHighlight + m_Normal: + m_Background: {fileID: 2800000, guid: 57a27e95edd46b349a1e166548b41b25, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.058823526, g: 0.058823526, b: 0.058823526, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 10 + m_Right: 10 + m_Top: 8 + m_Bottom: 10 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + windowHeader: + m_Name: windowHeader + m_Normal: + m_Background: {fileID: 2800000, guid: 04379e5209d765d4cb1ee2ecb1859174, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 0.8602434, b: 0.6102941, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7941176, g: 0.7941176, b: 0.7941176, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: -20} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + windowTitle: + m_Name: + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 5 + m_Right: 5 + m_Top: 7 + m_Bottom: 5 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + button: + m_Name: button + m_Normal: + m_Background: {fileID: 2800000, guid: df579b6e00e47fe439bc97324e29bd72, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: cb91769b5d2a890449ece3bcf9b8a5ef, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 9ccfbfaa0b6db1c4ea5f4dd3c58c44dc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 5 + m_Right: 5 + m_Top: 5 + m_Bottom: 5 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 5 + m_Right: 5 + m_Top: 5 + m_Bottom: 5 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 12 + m_FontStyle: 1 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + box: + m_Name: box + m_Normal: + m_Background: {fileID: 2800000, guid: ffdae6d737a3f7144b43df3fe24283f4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + labelOnCanvas: + m_Name: + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8455882, g: 0.8455882, b: 0.8455882, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 9 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + commentsBox: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: ffdae6d737a3f7144b43df3fe24283f4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.6764706, g: 0.6764706, b: 0.6764706, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 9 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + nodePortContainer: + m_Name: nodePortContainer + m_Normal: + m_Background: {fileID: 2800000, guid: 8f1675da05a45ff4ca148f116f5dd550, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + nodePortConnected: + m_Name: nodePortConnected + m_Normal: + m_Background: {fileID: 2800000, guid: 83a303c6804873b4da473eae7eb08213, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 1008da00b7f9b5745b8b2429a24a481a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + nodePortEmpty: + m_Name: nodePortEmpty + m_Normal: + m_Background: {fileID: 2800000, guid: f9c14578d344faa4c8ea654da3b08c99, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 83a303c6804873b4da473eae7eb08213, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + scaleArrowBR: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: 0b7f371cf14ba2e4fb8950cea79cdf04, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d5f05ae545bba804d8b33a5ee627773f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + scaleArrowTL: + m_Name: scaleArrowTL + m_Normal: + m_Background: {fileID: 2800000, guid: 1e6ff0ccf062cb8479b379c510082c41, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 656bb84157060344f909fbaa223f9000, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + canvasBG: + m_Name: canvasBG + m_Normal: + m_Background: {fileID: 2800000, guid: 8247856a7d71b484bbe79fcc17836668, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 0.25882354} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 7 + m_Right: 7 + m_Top: 7 + m_Bottom: 7 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 5 + m_Top: 0 + m_Bottom: 3 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 17 + m_FontStyle: 1 + m_Alignment: 8 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + canvasBorders: + m_Name: canvasBorders + m_Normal: + m_Background: {fileID: 2800000, guid: 5f78f379d2af2c4429b1806dfca160a7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 7 + m_Right: 7 + m_Top: 7 + m_Bottom: 7 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 1 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + editorPanel: + m_Name: editorPanel + m_Normal: + m_Background: {fileID: 2800000, guid: 0b5867f37f510a441aef083463a051e1, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7941176, g: 0.7941176, b: 0.7941176, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 29 + m_Bottom: 10 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 3 + m_Font: {fileID: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + canvasGroupHeader: + m_Name: canvasGroupHeader + m_Normal: + m_Background: {fileID: 2800000, guid: 0b5867f37f510a441aef083463a051e1, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 10 + m_Right: 10 + m_Top: 29 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 0 + m_Overflow: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 3 + m_Font: {fileID: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 3 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 1 + hollowBox: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: 7e36b2db229659c479458e70c70ba486, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + icons: + bezierTexture: {fileID: 2800000, guid: fa59896c4cbde034883c84af2008896b, type: 3} + statusSuccess: {fileID: 2800000, guid: a9e48b4e2cc25d448be7194526ae27a3, type: 3} + statusFailure: {fileID: 2800000, guid: 3be8023c9f6e651418165dbf293e4aa1, type: 3} + statusRunning: {fileID: 2800000, guid: 495fbc5e59efec34d81986cc8a166c32, type: 3} + circle: {fileID: 2800000, guid: 5548d8bf75e1829468202cb39a00b463, type: 3} + arrowLeft: {fileID: 2800000, guid: 60b2805cb710fb749b4a8a9463f4eb6a, type: 3} + arrowRight: {fileID: 2800000, guid: a1de6faf586cc2e47b2e090c80dff564, type: 3} + arrowTop: {fileID: 2800000, guid: 4e035b771d4c8594d93c520a1750a81a, type: 3} + arrowBottom: {fileID: 2800000, guid: defe75e89e358ca4793eff3f30c8e73b, type: 3} + genericType: {fileID: 2800000, guid: e7ecacd787686a742a5911a48e6ab8f9, type: 3} + canvasIcon: {fileID: 2800000, guid: 002fd309a0025fa4e97760f38b1e76ae, type: 3} + log: {fileID: 2800000, guid: 563c1f15a6300d14c8b53a9d97bffbab, type: 3} + lens: {fileID: 2800000, guid: e9d76848115dc744b8221ffc34788b0d, type: 3} + refactor: {fileID: 2800000, guid: fdbd85c89f131924e97c3ee00118282a, type: 3} + verboseLevel1: {fileID: 2800000, guid: 0b7308c39edd75c45ac03c0bd2e625d1, type: 3} + verboseLevel2: {fileID: 2800000, guid: e24267af4e0833b4987bf039422a40bf, type: 3} + verboseLevel3: {fileID: 2800000, guid: 8a9ce2461186c0a43b683895495b849b, type: 3} diff --git a/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset.meta similarity index 64% rename from Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta rename to Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset.meta index 2bc53de..d08f8a4 100644 --- a/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetLight.asset.meta @@ -1,5 +1,7 @@ fileFormatVersion: 2 -guid: a1b77770eb95dae4f9ff6761e1be451a +guid: ac3f234217273a644aed606c7b88b85a +timeCreated: 1541326337 +licenseType: Store NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures.meta new file mode 100644 index 0000000..bbcf8c8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 58cefbed5e7bc5c428e6a8eaa898f16b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd new file mode 100644 index 0000000..7e4286b Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd.meta new file mode 100644 index 0000000..6f3dbe9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Bezier.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: fa59896c4cbde034883c84af2008896b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 1 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 1 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 1 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common.meta new file mode 100644 index 0000000..65baf15 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 750c414a37890454fa41203b5761cc8e +folderAsset: yes +timeCreated: 1518238926 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd new file mode 100644 index 0000000..0424277 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd.meta new file mode 100644 index 0000000..d659616 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Button.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: df579b6e00e47fe439bc97324e29bd72 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd new file mode 100644 index 0000000..152d466 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd.meta new file mode 100644 index 0000000..ace0818 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonHover.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: cb91769b5d2a890449ece3bcf9b8a5ef +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd new file mode 100644 index 0000000..d7ac32d Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd.meta new file mode 100644 index 0000000..37ceb26 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ButtonPressed.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 9ccfbfaa0b6db1c4ea5f4dd3c58c44dc +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd new file mode 100644 index 0000000..6f56016 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd.meta new file mode 100644 index 0000000..12a4932 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/CanvasBorders.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 5f78f379d2af2c4429b1806dfca160a7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd new file mode 100644 index 0000000..5641264 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd.meta new file mode 100644 index 0000000..0a72289 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/HollowBox.psd.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 7e36b2db229659c479458e70c70ba486 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 1 + pSDShowRemoveMatteOption: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons.meta new file mode 100644 index 0000000..ebe59e8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 22cd7d3f345dae84d83e92af2ab02e3c +folderAsset: yes +timeCreated: 1541331607 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png new file mode 100644 index 0000000..d038c2a Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png.meta new file mode 100644 index 0000000..b315fd2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowBottom.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: defe75e89e358ca4793eff3f30c8e73b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png new file mode 100644 index 0000000..696b63d Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png.meta new file mode 100644 index 0000000..faf3d76 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowLeft.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 60b2805cb710fb749b4a8a9463f4eb6a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png new file mode 100644 index 0000000..dd06f24 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png.meta new file mode 100644 index 0000000..8ae73d9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowRight.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: a1de6faf586cc2e47b2e090c80dff564 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png new file mode 100644 index 0000000..614b5ad Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png.meta new file mode 100644 index 0000000..42fd387 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/ArrowTop.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 4e035b771d4c8594d93c520a1750a81a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png new file mode 100644 index 0000000..432ee22 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png.meta new file mode 100644 index 0000000..10fd6dd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/Circle.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 5548d8bf75e1829468202cb39a00b463 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png new file mode 100644 index 0000000..f1fe57e Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png.meta new file mode 100644 index 0000000..987ae62 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/GenericType.png.meta @@ -0,0 +1,104 @@ +fileFormatVersion: 2 +guid: e7ecacd787686a742a5911a48e6ab8f9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png new file mode 100644 index 0000000..580d187 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png.meta new file mode 100644 index 0000000..ab11050 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusFailure.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 3be8023c9f6e651418165dbf293e4aa1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png new file mode 100644 index 0000000..7250cd6 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png.meta new file mode 100644 index 0000000..93859e9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusRunning.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 495fbc5e59efec34d81986cc8a166c32 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png new file mode 100644 index 0000000..4043ee9 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png.meta new file mode 100644 index 0000000..7319120 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/Icons/StatusSuccess.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: a9e48b4e2cc25d448be7194526ae27a3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd new file mode 100644 index 0000000..7df4e4e Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd.meta new file mode 100644 index 0000000..32b8919 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBR.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 0b7f371cf14ba2e4fb8950cea79cdf04 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd new file mode 100644 index 0000000..dff3403 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd.meta new file mode 100644 index 0000000..c154ae0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowBRHover.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: d5f05ae545bba804d8b33a5ee627773f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd new file mode 100644 index 0000000..300733b Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd.meta new file mode 100644 index 0000000..2ed9b39 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/ScaleArrowTLHover.psd.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 656bb84157060344f909fbaa223f9000 +timeCreated: 1510247034 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd new file mode 100644 index 0000000..917f250 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd.meta new file mode 100644 index 0000000..08e6750 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/SimpleInnerShadow.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: ffdae6d737a3f7144b43df3fe24283f4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd new file mode 100644 index 0000000..cf37c71 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd.meta new file mode 100644 index 0000000..6fb88f5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHeader.psd.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 04379e5209d765d4cb1ee2ecb1859174 +timeCreated: 1509227703 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd new file mode 100644 index 0000000..cbbe195 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd.meta new file mode 100644 index 0000000..35fa10b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowHighlight.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 57a27e95edd46b349a1e166548b41b25 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd new file mode 100644 index 0000000..06cefce Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd.meta new file mode 100644 index 0000000..e53e340 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/WindowShadow.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: e7672af7f07cf104bbb8f3bcad3ee3eb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd new file mode 100644 index 0000000..ac62424 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd.meta new file mode 100644 index 0000000..bc1a449 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Common/scaleArrowTL.psd.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 1e6ff0ccf062cb8479b379c510082c41 +timeCreated: 1510247034 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark.meta new file mode 100644 index 0000000..3dd4209 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0b87efe86d62a4d4992de3a7401ef6c9 +folderAsset: yes +timeCreated: 1518238644 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd new file mode 100644 index 0000000..0c6dcdf Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd.meta new file mode 100644 index 0000000..2cf4fec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/CanvasBG.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 8ce37df2e286d614aa44758a60cdb2d6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons.meta new file mode 100644 index 0000000..3e0182e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 81d6a17965686624299e4621955b1daf +folderAsset: yes +timeCreated: 1541334897 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png new file mode 100644 index 0000000..0d9e398 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png.meta new file mode 100644 index 0000000..511077d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Brackets.png.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: deab6b3165ab396408e7333c5580ef74 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png new file mode 100644 index 0000000..5a5f4a4 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png.meta new file mode 100644 index 0000000..a5c8ca6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/CanvasIcon.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 3b3bfaecab3d6184b9513b41f550481a +timeCreated: 1455517702 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png new file mode 100644 index 0000000..384ca25 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png.meta new file mode 100644 index 0000000..2f8ed91 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Lens.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: b70a85fbb4eb7bf46bb6345f7b0ff842 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png new file mode 100644 index 0000000..39d8201 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png.meta new file mode 100644 index 0000000..a745c85 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/Log.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 7002f50ea12a4f2419d3a22cd2931629 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png new file mode 100644 index 0000000..08a3019 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png.meta new file mode 100644 index 0000000..a399431 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel1.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 54e96ea4c35de7544a6b8f80768337c0 +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png new file mode 100644 index 0000000..5b6f0c4 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png.meta new file mode 100644 index 0000000..9e9cd82 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel2.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 3cd33e6f1767ed74aa82280df4fb66b7 +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png new file mode 100644 index 0000000..8bd5e9d Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png.meta new file mode 100644 index 0000000..b4ce67c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Icons/VerboseLevel3.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 25a5033cf1bf9a94096ed81195e713e3 +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd new file mode 100644 index 0000000..07e01b9 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd.meta new file mode 100644 index 0000000..baceaf2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePort.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: bd66d8018a60ab14c9f709f9b859466e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd new file mode 100644 index 0000000..dcb2799 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd.meta new file mode 100644 index 0000000..1e62609 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortConnectedHover.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 5b40cde50004a6f49b12d170dcde0589 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd new file mode 100644 index 0000000..59121d3 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd.meta new file mode 100644 index 0000000..cdd9c3e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/NodePortHover.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: e225926bb93fe3041b0e80a0932338de +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd new file mode 100644 index 0000000..de85703 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd.meta new file mode 100644 index 0000000..95819ae --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Panel.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 2c8a52e784b60364e840e45e1d61de53 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd new file mode 100644 index 0000000..ad8e4c4 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd.meta new file mode 100644 index 0000000..718acf2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/Window.psd.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 242a336043a24b14d8c36fd24f0645b8 +timeCreated: 1509230108 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd new file mode 100644 index 0000000..10a8a06 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd.meta new file mode 100644 index 0000000..d31b90a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Dark/simpleBox.psd.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: b63e5b34672f6f342a13a6b69cf042b7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light.meta new file mode 100644 index 0000000..1a3f6b6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: fc8c39c7b3898d34ba822f24c0add46c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd new file mode 100644 index 0000000..cb057c9 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd.meta new file mode 100644 index 0000000..21d0094 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/CanvasBG.psd.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 8247856a7d71b484bbe79fcc17836668 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons.meta new file mode 100644 index 0000000..86b7bdb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a8e47ee46b0369747b23cad37d44a3cd +folderAsset: yes +timeCreated: 1541334903 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png new file mode 100644 index 0000000..7e3bb26 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png.meta new file mode 100644 index 0000000..1056e77 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Brackets.png.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: fdbd85c89f131924e97c3ee00118282a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png new file mode 100644 index 0000000..95b2240 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png.meta new file mode 100644 index 0000000..96214d8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/CanvasIcon.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 002fd309a0025fa4e97760f38b1e76ae +timeCreated: 1455517702 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png new file mode 100644 index 0000000..16cc344 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png.meta new file mode 100644 index 0000000..986e620 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Lens.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: e9d76848115dc744b8221ffc34788b0d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png new file mode 100644 index 0000000..3bc2f79 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png.meta new file mode 100644 index 0000000..d45e7fe --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/Log.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 563c1f15a6300d14c8b53a9d97bffbab +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png new file mode 100644 index 0000000..d2a6e95 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png.meta new file mode 100644 index 0000000..61dfb55 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel1.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 0b7308c39edd75c45ac03c0bd2e625d1 +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png new file mode 100644 index 0000000..c88c79b Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png.meta new file mode 100644 index 0000000..04ef83b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel2.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: e24267af4e0833b4987bf039422a40bf +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png new file mode 100644 index 0000000..13cb2ad Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png.meta new file mode 100644 index 0000000..771e50c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Icons/VerboseLevel3.png.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 8a9ce2461186c0a43b683895495b849b +timeCreated: 1540855788 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd new file mode 100644 index 0000000..d5665f2 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd.meta new file mode 100644 index 0000000..1c21205 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePort.psd.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: f9c14578d344faa4c8ea654da3b08c99 +timeCreated: 1427330142 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd new file mode 100644 index 0000000..5d77314 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd.meta new file mode 100644 index 0000000..17c7e10 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortConnectedHover.psd.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 1008da00b7f9b5745b8b2429a24a481a +timeCreated: 1427330142 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd new file mode 100644 index 0000000..5b90bf0 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd.meta new file mode 100644 index 0000000..ff05255 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/NodePortHover.psd.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 83a303c6804873b4da473eae7eb08213 +timeCreated: 1427330142 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd new file mode 100644 index 0000000..8d680e9 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd.meta new file mode 100644 index 0000000..07f3dfd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Panel.psd.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 0b5867f37f510a441aef083463a051e1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd new file mode 100644 index 0000000..df9e41c Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd.meta new file mode 100644 index 0000000..1398879 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/SimpleBox.psd.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 8f1675da05a45ff4ca148f116f5dd550 +timeCreated: 1427329960 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd new file mode 100644 index 0000000..9282ffc Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd.meta new file mode 100644 index 0000000..ab5fda6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/StyleSheet/StyleSheetTextures/Light/Window.psd.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 673cd48a419d6c94fbc67d4bc862e05b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons.meta new file mode 100644 index 0000000..2cdf354 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c8823c4ca92ce8c4887cf2a40911d1f2 +folderAsset: yes +timeCreated: 1509255745 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit.meta new file mode 100644 index 0000000..48232f5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4fcc4a908ca9cb445be37f5cb72c8de5 +folderAsset: yes +timeCreated: 1518238221 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png new file mode 100644 index 0000000..eabbd53 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png.meta new file mode 100644 index 0000000..03e0749 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Accessor.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 65ef1a7f8e98cf147be1f2848fda9432 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png new file mode 100644 index 0000000..77b6da6 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png.meta new file mode 100644 index 0000000..ca515e7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Action.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 98228ed3b93435a41b08fe8558176c75 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png new file mode 100644 index 0000000..3085bd6 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png.meta new file mode 100644 index 0000000..cc77fac --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Agent.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 9aa4e5f0ff745cc4395c568fa094e64b +timeCreated: 1521557909 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png new file mode 100644 index 0000000..a5d79ea Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png.meta new file mode 100644 index 0000000..e618ff8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/BT.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 6c569e0772bc48c418961bb80b41f2c1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png new file mode 100644 index 0000000..22dc040 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png.meta new file mode 100644 index 0000000..c0f0acc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Condition.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: b1bcc48f7bbd4e440b846e5997a03813 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png new file mode 100644 index 0000000..57b5381 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png.meta new file mode 100644 index 0000000..7cc5073 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Dialogue.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 73ce2d484b23f7a47b2016bdf9fbf51a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png new file mode 100644 index 0000000..a59711d Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png.meta new file mode 100644 index 0000000..adf5d47 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Eye.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: da0eb9b686b371a4289c88efbb008bed +timeCreated: 1495932755 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png new file mode 100644 index 0000000..f6de9df Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png.meta new file mode 100644 index 0000000..90d1bc8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FS.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: a40d31241d578fd4c87badc3a87c0927 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png new file mode 100644 index 0000000..7e33d0a Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png.meta new file mode 100644 index 0000000..6d72821 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FSM.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 31cbd42faf94f674991c7df0137051e2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png new file mode 100644 index 0000000..2e26ea8 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png.meta new file mode 100644 index 0000000..8fe11dd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Failure.png.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: b5b84a0fd267f104fb6a1c6c150970bf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png new file mode 100644 index 0000000..5d80b1b Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png.meta new file mode 100644 index 0000000..475d674 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Filter.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 4b3f7585e0690434ab95cfc51dc7a4fb +timeCreated: 1494721825 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png new file mode 100644 index 0000000..866a645 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png.meta new file mode 100644 index 0000000..cad6739 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/FlipSelector.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 2d790aeb3a27e1c46ae1f79804da15f6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png new file mode 100644 index 0000000..d6f39a8 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png.meta new file mode 100644 index 0000000..8f4ff0e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Halt.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 811bf7372af18a549a52fa82056ae885 +timeCreated: 1427371077 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png new file mode 100644 index 0000000..0705f2d Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png.meta new file mode 100644 index 0000000..f76b45b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/IndexSwitcher.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: ed5496c4ac88e3d4f944de65fdf5f327 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png new file mode 100644 index 0000000..619aae5 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png.meta new file mode 100644 index 0000000..c83e681 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Interruptor.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: ff41d90c94003c649890db1cbb529fb3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png new file mode 100644 index 0000000..c2ba0f2 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png.meta new file mode 100644 index 0000000..cece4cc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/List.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 97eff3300587d3c49b009d67863f62c2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png new file mode 100644 index 0000000..72023ac Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png.meta new file mode 100644 index 0000000..b5c6204 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroIn.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 767f59b8899e8044cb54c46e753e991d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png new file mode 100644 index 0000000..2a0f437 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png.meta new file mode 100644 index 0000000..3296cb8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/MacroOut.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: c3057df3705fe2740bb3f1b4e4f2a7ea +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png new file mode 100644 index 0000000..43dda86 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png.meta new file mode 100644 index 0000000..f31993a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Merge.png.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 14aeec2d3c8011a498c24334954caae7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png new file mode 100644 index 0000000..f6bdd59 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png.meta new file mode 100644 index 0000000..7bfc5d9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Parallel.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: bf4a07dbc4f7591409e6c23929f1ff6a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png new file mode 100644 index 0000000..fc0f793 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png.meta new file mode 100644 index 0000000..634cd91 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Priority.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: e68c642f4bca82248a4613a69d3f38ee +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png new file mode 100644 index 0000000..784ffe5 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png.meta new file mode 100644 index 0000000..b8471a0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/ProbabilitySelector.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: bb503c462558b8845850927249afb51b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png new file mode 100644 index 0000000..0d18a96 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png.meta new file mode 100644 index 0000000..b1c5214 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Remap.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 8f0500f18949910499a7c56b7756174d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png new file mode 100644 index 0000000..f299889 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png.meta new file mode 100644 index 0000000..cd22922 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Repeat.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: d78437998f0996141a4c13dde88cf0dc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png new file mode 100644 index 0000000..e5274f8 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png.meta new file mode 100644 index 0000000..c00c104 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Selector.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: e9be21d6d1b725e45aca160d0dd96728 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png new file mode 100644 index 0000000..4b67525 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png.meta new file mode 100644 index 0000000..704b67c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Sequencer.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 7860a96b74c886840b0d2d9c2579fc61 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png new file mode 100644 index 0000000..c269b05 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png.meta new file mode 100644 index 0000000..2358e68 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Set.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 30ce5c06e7c8cff4283498f41b39c444 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png new file mode 100644 index 0000000..ee1878e Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png.meta new file mode 100644 index 0000000..caef037 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Shield.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: ef2fe2a1e7f8aa5438d0921ec7b436a2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png new file mode 100644 index 0000000..166ebcc Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png.meta new file mode 100644 index 0000000..1eaea53 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/StepIterator.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 15e4ba6035d41e64c935ae3e74dee12e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png new file mode 100644 index 0000000..302e6aa Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png.meta new file mode 100644 index 0000000..f8231c1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Success.png.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 2dd9e154d3e956a428b15abcf8a32246 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png new file mode 100644 index 0000000..f30c605 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png.meta new file mode 100644 index 0000000..543da32 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/Timeout.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: b60174d410a4b8f46a554a85d1d57315 +timeCreated: 1427371077 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png new file mode 100644 index 0000000..ff9c59a Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png.meta new file mode 100644 index 0000000..4dba6d9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Explicit/UpwardsArrow.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 120059d728fc2844a80740eee081892b +timeCreated: 1495927436 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit.meta new file mode 100644 index 0000000..5dd1134 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: abff6f49998de56428bfc8f601d9db91 +folderAsset: yes +timeCreated: 1518238216 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png new file mode 100644 index 0000000..7340ef0 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png.meta new file mode 100644 index 0000000..dfefe2f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SharpEvent.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 2b3fcd6b8d2abca4a8e56d0c5e7ba216 +timeCreated: 1539250506 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png new file mode 100644 index 0000000..a87a808 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png.meta new file mode 100644 index 0000000..04a7e42 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Nodes.SimplexNode.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 9c476491835349a40a910459d617d98e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png new file mode 100644 index 0000000..4fdf470 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png.meta new file mode 100644 index 0000000..d547a34 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/FlowCanvas.Wild.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 2a2365d5ac2706a49aaafa15dd18756f +timeCreated: 1508612258 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png new file mode 100644 index 0000000..a87a808 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png.meta new file mode 100644 index 0000000..bbeb579 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Node.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: f7609e8a908d7614b996d88627c6331b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png new file mode 100644 index 0000000..a87a808 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png.meta new file mode 100644 index 0000000..2593b52 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/NodeCanvas.Framework.Task.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: e9ff990cdfaf52b4692e36cb6f4a2054 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png new file mode 100644 index 0000000..f8c9f63 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png.meta new file mode 100644 index 0000000..b17616a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Boolean.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 8d725f6d1ada6d243b1b9887b9a843ac +timeCreated: 1538493766 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png new file mode 100644 index 0000000..6838016 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png.meta new file mode 100644 index 0000000..6616991 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Delegate.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 7d0b20bcef8a81c49a0d1eb7b6b221d5 +timeCreated: 1508948715 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png new file mode 100644 index 0000000..35022ac Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png.meta new file mode 100644 index 0000000..2cfe754 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Enum.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: d3039e5d29b4d1a4b8e1744e92d4b277 +timeCreated: 1514164655 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png new file mode 100644 index 0000000..839d632 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png.meta new file mode 100644 index 0000000..236846a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Int32.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 0c969821fa92fb6418b39c5d918e7b99 +timeCreated: 1538494488 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png new file mode 100644 index 0000000..4c99c04 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png.meta new file mode 100644 index 0000000..a4fe26e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Object.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: c9969e7dc6c91464a9ec8ec6e667b095 +timeCreated: 1508425624 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png new file mode 100644 index 0000000..b064622 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png.meta new file mode 100644 index 0000000..3443dde --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Single.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: eea292bcb1b110a4daa87845f7786694 +timeCreated: 1538494217 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png new file mode 100644 index 0000000..9b39927 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png.meta new file mode 100644 index 0000000..a855431 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.String.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: b45671ede5ba48b498f8f67191255b6a +timeCreated: 1509749949 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png new file mode 100644 index 0000000..182f663 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png.meta new file mode 100644 index 0000000..9f69ffa --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/System.Type.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 46d4d3a10514f3949969c13c6a053767 +timeCreated: 1509738750 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png new file mode 100644 index 0000000..c8bac28 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png.meta new file mode 100644 index 0000000..08f4c49 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Color.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: bde418263493c664490528cca5f1f869 +timeCreated: 1509747416 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png new file mode 100644 index 0000000..936405f Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png.meta new file mode 100644 index 0000000..b3ede2f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Events.UnityEventBase.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 11504b9c3546cc94184664be813dcb1d +timeCreated: 1539250506 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png new file mode 100644 index 0000000..bd50d3f Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png.meta new file mode 100644 index 0000000..907d5fb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Quaternion.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 7a9d346a03561f74cb856069b9cd8c47 +timeCreated: 1538494964 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png new file mode 100644 index 0000000..b57004e Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png.meta new file mode 100644 index 0000000..27596ef --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector2.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 143207e22dfd20c4b84e9b004ddc732a +timeCreated: 1538494964 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png new file mode 100644 index 0000000..bd50d3f Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png.meta new file mode 100644 index 0000000..de9fe60 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector3.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 7e6e189291640e440a9d8024c13f0dd5 +timeCreated: 1538494964 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png new file mode 100644 index 0000000..bd50d3f Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png differ diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png.meta new file mode 100644 index 0000000..cad704a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Resources/TypeIcons/Implicit/UnityEngine.Vector4.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 7d3529bec7bced541a282215f22c456b +timeCreated: 1538494964 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows.meta new file mode 100644 index 0000000..80e207a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 03488069a0427d046a38f28c1c84e238 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs new file mode 100644 index 0000000..0e57d4a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs @@ -0,0 +1,144 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using ParadoxNotion; +using System.Collections.Generic; +using ParadoxNotion.Design; +using NodeCanvas.Framework; +using System.Linq; + +namespace NodeCanvas.Editor +{ + + [InitializeOnLoad] + public class ActiveOwnersOverview : EditorWindow + { + + private List activeOwners; + private bool willRepaint; + + private string search; + private Vector2 scrollPos; + + ///---------------------------------------------------------------------------------------------- + + ///Show the finder window + public static void ShowWindow() { + GetWindow().Show(); + } + + //... + void OnEnable() { + titleContent = new GUIContent("Overview", StyleSheet.canvasIcon); + wantsMouseMove = true; + wantsMouseEnterLeaveWindow = true; + search = null; + scrollPos = default(Vector2); + + activeOwners = new List(); + if ( Application.isPlaying ) { + foreach ( var owner in FindObjectsByType(FindObjectsSortMode.InstanceID).Where(o => o.isRunning) ) { + if ( !activeOwners.Contains(owner) ) { activeOwners.Add(owner); } + } + } + + GraphOwner.onOwnerBehaviourStateChange -= OwnerBehaviourChange; + GraphOwner.onOwnerBehaviourStateChange += OwnerBehaviourChange; + + willRepaint = true; + RemoveNotification(); + } + + void OnDisable() { + GraphOwner.onOwnerBehaviourStateChange -= OwnerBehaviourChange; + activeOwners = null; + } + + //... + void OwnerBehaviourChange(GraphOwner owner) { + if ( !Application.isPlaying ) { return; } + if ( owner.isRunning ) { + //we check contains for case of paused + if ( !activeOwners.Contains(owner) ) { + activeOwners.Add(owner); + } + } else { + activeOwners.Remove(owner); + } + + willRepaint = true; + } + + ///---------------------------------------------------------------------------------------------- + + //... + void Update() { + if ( willRepaint ) { + willRepaint = false; + Repaint(); + } + } + + //... + void OnGUI() { + + + EditorGUILayout.HelpBox("In PlayMode only, you can use this Utility to search and find GraphOwners in the scene which are actively running.", MessageType.Info); + + search = EditorUtils.SearchField(search); + EditorUtils.BoldSeparator(); + + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, false, false); + + var hasResult = false; + foreach ( var owner in activeOwners ) { + if ( owner == null ) { continue; } + hasResult = true; + + var displayName = string.Format("{0} ({1})", owner.name, owner.graphType.FriendlyName()); + + if ( !string.IsNullOrEmpty(search) ) { + if ( !StringUtils.SearchMatch(search, displayName) ) { + continue; + } + } + + GUILayout.BeginHorizontal(GUI.skin.box); + GUILayout.Label(displayName); + GUILayout.EndHorizontal(); + + var elementRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(elementRect, MouseCursor.Link); + if ( elementRect.Contains(Event.current.mousePosition) ) { + if ( Event.current.type == EventType.MouseMove ) { + willRepaint = true; + } + GUI.color = new Color(0.5f, 0.5f, 1, 0.3f); + GUI.DrawTexture(elementRect, EditorGUIUtility.whiteTexture); + GUI.color = Color.white; + if ( Event.current.type == EventType.MouseDown ) { + Selection.activeObject = owner; + EditorGUIUtility.PingObject(owner); + if ( Event.current.clickCount >= 2 ) { + GraphEditor.OpenWindow(owner); + } + Event.current.Use(); + } + } + } + + EditorGUILayout.EndScrollView(); + + if ( !hasResult ) { + ShowNotification(new GUIContent(Application.isPlaying ? "No GraphOwner is actively running." : "Application is not playing.")); + } + + if ( Event.current.type == EventType.MouseLeaveWindow ) { + willRepaint = true; + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs.meta new file mode 100644 index 0000000..76190f7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ActiveOwnersOverview.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7b6da7a5f83037644a3230401b9cb736 +timeCreated: 1514514001 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs new file mode 100644 index 0000000..48bc4ae --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs @@ -0,0 +1,99 @@ +#if UNITY_EDITOR + +using ParadoxNotion.Design; +using NodeCanvas.Framework; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + public class ExternalInspectorWindow : EditorWindow + { + + private Vector2 scrollPos; + private bool willRepaint; + + public static void ShowWindow() { + var window = GetWindow(); + window.Show(); + } + + void OnEnable() { + Prefs.useExternalInspector = true; + titleContent = new GUIContent("Inspector", StyleSheet.canvasIcon); + GraphEditorUtility.onActiveElementChanged -= OnActiveElementChange; + GraphEditorUtility.onActiveElementChanged += OnActiveElementChange; + } + + void OnDisable() { + Prefs.useExternalInspector = false; + GraphEditorUtility.onActiveElementChanged -= OnActiveElementChange; + } + + void OnActiveElementChange(IGraphElement element) { + willRepaint = true; + } + + void Update() { + if ( willRepaint ) { + willRepaint = false; + Repaint(); + } + } + + void OnGUI() { + + if ( GraphEditor.current == null || GraphEditor.currentGraph == null ) { + GUILayout.Label("No graph is open in the Graph Editor"); + return; + } + + if ( EditorApplication.isCompiling && !Application.isPlaying) { + ShowNotification(new GUIContent("...Compiling Please Wait...")); + return; + } + + var currentSelection = GraphEditorUtility.activeElement; + if ( currentSelection == null ) { + GUILayout.Label("No selection in Graph Editor"); + return; + } + + UndoUtility.CheckUndo(currentSelection.graph, "Inspector Change"); + scrollPos = GUILayout.BeginScrollView(scrollPos); + { + if ( currentSelection is Node ) { + var node = (Node)currentSelection; + Title(node.name); + Node.ShowNodeInspectorGUI(node); + } + + if ( currentSelection is Connection ) { + Title("Connection"); + Connection.ShowConnectionInspectorGUI(currentSelection as Connection); + } + } + EditorUtils.EndOfInspector(); + GUILayout.EndScrollView(); + + UndoUtility.CheckDirty(currentSelection.graph); + + if ( GUI.changed ) { + GraphEditor.current.Repaint(); + } + } + + void Title(string text) { + GUILayout.Space(5); + GUILayout.BeginHorizontal("box", GUILayout.Height(28)); + GUILayout.FlexibleSpace(); + GUILayout.Label("" + text + ""); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + EditorUtils.BoldSeparator(); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs.meta new file mode 100644 index 0000000..4341dda --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/ExternalInspectorWindow.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 40a509cf03cf7e946805a7c15f0b923f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs new file mode 100644 index 0000000..8008b09 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs @@ -0,0 +1,277 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using System.Linq; +using ParadoxNotion.Design; +using NodeCanvas.Framework; +using UnityEditor; +using UnityEngine; +using ParadoxNotion; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Editor +{ + + [InitializeOnLoad] + public class GraphConsole : EditorWindow + { + + private const int MAX_VIEW_MESSAGES = 100; + + private static GraphConsole current; + private static List messages; + private static Dictionary styleMap; + private static Dictionary> graphsMap; + + private Vector2 scrollPos; + private bool willRepaint; + + private GUIStyle _logTypeFilterStyle; + private GUIStyle logTypeFilterStyle { + get + { + if ( _logTypeFilterStyle == null ) { + _logTypeFilterStyle = new GUIStyle(EditorStyles.toolbarButton); + _logTypeFilterStyle.margin = new RectOffset(); + _logTypeFilterStyle.padding = new RectOffset(); + } + return _logTypeFilterStyle; + } + } + + ///---------------------------------------------------------------------------------------------- + + //... + struct ConsoleStyle + { + public Texture icon; + public string hex; + public ConsoleStyle(Texture icon, string hex) { + this.icon = icon; + this.hex = EditorGUIUtility.isProSkin ? hex : "222222"; + } + } + + [InitializeOnLoadMethod] + static void Initialize() { + EditorApplication.playModeStateChanged -= PlayModeChange; + EditorApplication.playModeStateChanged += PlayModeChange; + Logger.RemoveListener(OnLogMessageReceived); + Logger.AddListener(OnLogMessageReceived); + messages = new List(); + graphsMap = new Dictionary>(); + + styleMap = new Dictionary + { + {LogType.Log, new ConsoleStyle(Icons.infoIcon, "eeeeee")}, + {LogType.Warning, new ConsoleStyle(Icons.warningIcon, "f6ff00")}, + {LogType.Error, new ConsoleStyle(Icons.errorIcon, "db3b3b")}, + {LogType.Exception, new ConsoleStyle(Icons.errorIcon, "db3b3b")}, + {LogType.Assert, new ConsoleStyle(Icons.infoIcon, "eeeeee")}, + }; + } + + //... + static void PlayModeChange(PlayModeStateChange state) { + if ( !EditorApplication.isPlayingOrWillChangePlaymode && Prefs.consoleClearOnPlay ) { + messages.Clear(); + graphsMap.Clear(); + } + } + + //open the NC console window + public static void ShowWindow() { + var window = GetWindow(); + window.Show(); + } + + //... + static bool OnLogMessageReceived(Logger.Message msg) { + if ( msg.tag == LogTag.EDITOR ) { + return false; + } + + if ( ParadoxNotion.Services.Threader.isMainThread ) { + if ( !Prefs.logEventsInfo && msg.tag == LogTag.EVENT ) { + return true; + } + + if ( !Prefs.logVariablesInfo && msg.tag == LogTag.VARIABLE ) { + return true; + } + } + + var graph = Graph.GetElementGraph(msg.context); + if ( graph == null ) { + return false; + } + + if ( !graphsMap.ContainsKey(graph) ) { + graphsMap[graph] = new List(); + } + + graphsMap[graph].Add(msg); + messages.Add(msg); + + if ( current != null ) { + current.RefreshTitle(); + return true; + } + + return false; + } + + //... + void OnEnable() { + current = this; + titleContent = new GUIContent(StyleSheet.canvasIcon); + RefreshTitle(); + } + + //... + void OnDisable() { + current = null; + } + + //... + void RefreshTitle() { + titleContent.text = messages != null && messages.Count > 0 ? "Console *" : "Console"; + willRepaint = true; + } + + //... + void Update() { + if ( willRepaint ) { + willRepaint = false; + Repaint(); + } + } + + //show stuff + void OnGUI() { + + if ( EditorGUIUtility.isProSkin ) { + Styles.Draw(new Rect(0, 0, Screen.width, Screen.height), Styles.shadowedBackground); + } + + var e = Event.current; + GUILayout.BeginHorizontal(EditorStyles.toolbar); + GUILayout.Space(4); + var ascending = Prefs.consoleLogOrder == Prefs.ConsoleLogOrder.Ascending; + var newValue = GUILayout.Toggle(ascending, new GUIContent(ascending ? "▲" : "▼"), "label", GUILayout.Width(15)); + if ( ascending != newValue ) { Prefs.consoleLogOrder = newValue ? Prefs.ConsoleLogOrder.Ascending : Prefs.ConsoleLogOrder.Descending; } + GUILayout.Space(2); + Prefs.consoleLogInfo = GUILayout.Toggle(Prefs.consoleLogInfo, new GUIContent(Icons.infoIcon), logTypeFilterStyle, GUILayout.Width(30)); + GUILayout.Space(2); + Prefs.consoleLogWarning = GUILayout.Toggle(Prefs.consoleLogWarning, new GUIContent(Icons.warningIcon), logTypeFilterStyle, GUILayout.Width(30)); + GUILayout.Space(2); + Prefs.consoleLogError = GUILayout.Toggle(Prefs.consoleLogError, new GUIContent(Icons.errorIcon), logTypeFilterStyle, GUILayout.Width(30)); + + GUILayout.FlexibleSpace(); + Prefs.consoleClearOnPlay = GUILayout.Toggle(Prefs.consoleClearOnPlay, new GUIContent("Clear On Play"), logTypeFilterStyle, GUILayout.Width(100)); + if ( GUILayout.Button("Clear", EditorStyles.toolbarButton, GUILayout.Width(70)) ) { + messages.Clear(); + } + GUILayout.EndHorizontal(); + + if ( messages.Count == 0 ) { + EditorGUILayout.HelpBox("This console will catch graph related logs and display them here instead of the normal Unity console, thus save bloat from the Unity console.\nFurthermore, any log displayed here can be clicked to focus the relevant graph element that the log relates to automatically.\nIt is recommended to dock this console below the Graph Editor for easier debugging.", MessageType.Info); + } + + scrollPos = GUILayout.BeginScrollView(scrollPos); + for ( var i = ( ascending ? messages.Count - 1 : 0 ); ( ascending ? i >= 0 : i < messages.Count ); i = ( ascending ? i - 1 : i + 1 ) ) { + var msg = messages[i]; + + if ( ascending && messages.Count - i > MAX_VIEW_MESSAGES ) { continue; } + if ( !ascending && messages.Count - MAX_VIEW_MESSAGES > i ) { continue; } + if ( IsFiltered(msg.type) ) { continue; } + + if ( EditorGUIUtility.isProSkin ) { GUI.color = Color.black.WithAlpha(i % 2 == 0 ? 0.3f : 0); } + if ( !EditorGUIUtility.isProSkin ) { GUI.color = Color.white.WithAlpha(i % 2 == 0 ? 0.3f : 0); } + GUILayout.BeginHorizontal(GUI.skin.box); + GUI.color = Color.white; + var content = GetFormatedGUIContentForMessage(msg); + GUILayout.Label(content, Styles.leftLabel, GUILayout.Width(0), GUILayout.ExpandWidth(true)); + if ( GUILayout.Button("X", GUILayout.Width(18)) ) { + messages.RemoveAt(i); + } + GUILayout.EndHorizontal(); + var lastRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(lastRect, MouseCursor.Link); + if ( lastRect.Contains(e.mousePosition) && e.type == EventType.MouseDown ) { + ProccessMessage(msg); + } + } + GUILayout.EndScrollView(); + } + + //helper method + public static GUIContent GetFormatedGUIContentForMessage(Logger.Message msg) { + if ( !msg.IsValid() ) { return GUIContent.none; } + var tagText = string.Format("({0} {1})", msg.tag, msg.type.ToString()); + var map = styleMap[msg.type]; + return new GUIContent(string.Format("{1}: {2}", map.hex, tagText, msg.text), map.icon); + } + + ///Fetch last logger message of target graph + public static Logger.Message GetLastMessageForGraph(Graph graph) { + List list = null; + if ( graphsMap.TryGetValue(graph, out list) ) { + return list.LastOrDefault(); + } + return default(Logger.Message); + } + + //... + static bool IsFiltered(LogType type) { + if ( type == LogType.Log && !Prefs.consoleLogInfo ) return true; + if ( type == LogType.Warning && !Prefs.consoleLogWarning ) return true; + if ( type == LogType.Error && !Prefs.consoleLogError ) return true; + return false; + } + + //... + static void ProccessMessage(Logger.Message msg) { + + Object unityContext = null; + + var graph = Graph.GetElementGraph(msg.context); + if ( graph != null ) { + unityContext = graph.agent != null ? (Object)graph.agent.gameObject : (Object)graph; + } else { + unityContext = msg.context as Object; + } + + if ( unityContext != null ) { + Selection.activeObject = unityContext; + EditorGUIUtility.PingObject(unityContext); + } + + //cease here if no graph + if ( graph == null ) { + return; + } + + var editor = GraphEditor.current; + if ( editor == null || GraphEditor.currentGraph != graph ) { + editor = GraphEditor.OpenWindow(graph); + } + + IGraphElement element = null; + if ( msg.context is IGraphElement ) { + element = (IGraphElement)msg.context; + } + if ( msg.context is Task ) { + element = graph.GetTaskParentElement((Task)msg.context); + } + if ( msg.context is BBParameter ) { + element = graph.GetParameterParentElement((BBParameter)msg.context); + } + + EditorApplication.delayCall += () => GraphEditor.FocusElement(element, true); + + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs.meta new file mode 100644 index 0000000..fff3898 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphConsole.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 379debbb039f2cc45910e390950ed62d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs new file mode 100644 index 0000000..4c002c5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs @@ -0,0 +1,191 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + //Events + partial class GraphEditor + { + + private static bool mouse2Down; + + ///Graph events BEFORE nodes + static void HandlePreNodesGraphEvents(Graph graph, Vector2 canvasMousePos) { + + if ( e.button == 2 && e.type == EventType.MouseDown /*|| e.type == EventType.MouseUp*/ ) { + UndoUtility.RecordObjectComplete(graph, "Graph Pan"); + } + + if ( e.type == EventType.MouseUp || e.type == EventType.KeyUp ) { + SnapNodesToGrid(graph); + } + + if ( e.type == EventType.KeyDown && e.keyCode == KeyCode.F && GUIUtility.keyboardControl == 0 ) { + FocusSelection(); + e.Use(); + } + + if ( e.type == EventType.MouseDown && e.button == 2 && e.clickCount == 2 ) { + FocusPosition(ViewToCanvas(e.mousePosition)); + } + + if ( e.type == EventType.ScrollWheel && GraphEditorUtility.allowClick ) { + if ( canvasRect.Contains(e.mousePosition) ) { + var zoomDelta = e.shift ? 0.1f : 0.25f; + ZoomAt(e.mousePosition, -e.delta.y > 0 ? zoomDelta : -zoomDelta); + } + } + + if ( e.type == EventType.MouseDrag && e.alt && e.button == 1 ) { + ZoomAt(new Vector2(screenWidth / 2, screenHeight / 2), e.delta.x / 100); + e.Use(); + } + + if ( ( e.button == 2 && e.type == EventType.MouseDrag && canvasRect.Contains(e.mousePosition) ) || + ( ( e.type == EventType.MouseDown || e.type == EventType.MouseDrag ) && e.alt && e.isMouse ) ) { + pan += e.delta; + smoothPan = null; + smoothZoomFactor = null; + e.Use(); + } + + if ( e.type == EventType.MouseDown && e.button == 2 ) { mouse2Down = true; } + if ( e.type == EventType.MouseUp && e.button == 2 ) { mouse2Down = false; } + if ( e.alt || mouse2Down ) { EditorGUIUtility.AddCursorRect(new Rect(0, 0, screenWidth, screenHeight), MouseCursor.Pan); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Graph events AFTER nodes + static void HandlePostNodesGraphEvents(Graph graph, Vector2 canvasMousePos) { + + //Shortcuts + if ( GUIUtility.keyboardControl == 0 ) { + + if ( e.type == EventType.ValidateCommand ) { + if ( e.commandName == "Copy" || e.commandName == "Cut" || e.commandName == "Paste" || e.commandName == "SoftDelete" || e.commandName == "Delete" || e.commandName == "Duplicate" ) { + e.Use(); + } + } + + if ( e.type == EventType.ExecuteCommand ) { + + //COPY/CUT + if ( e.commandName == "Copy" || e.commandName == "Cut" ) { + List selection = null; + if ( GraphEditorUtility.activeNode != null ) { + selection = new List { GraphEditorUtility.activeNode }; + } + if ( GraphEditorUtility.activeElements != null && GraphEditorUtility.activeElements.Count > 0 ) { + selection = GraphEditorUtility.activeElements.Cast().ToList(); + } + if ( selection != null ) { + CopyBuffer.SetCache(Graph.CloneNodes(selection).ToArray()); + if ( e.commandName == "Cut" ) { + foreach ( Node node in selection ) { graph.RemoveNode(node); } + } + } + e.Use(); + } + + //PASTE + if ( e.commandName == "Paste" ) { + if ( CopyBuffer.HasCache() ) { + TryPasteNodesInGraph(graph, CopyBuffer.GetCache(), canvasMousePos + new Vector2(500, 500) / graph.zoomFactor); + } + e.Use(); + } + + //DUPLICATE + if ( e.commandName == "Duplicate" ) { + if ( GraphEditorUtility.activeElements != null && GraphEditorUtility.activeElements.Count > 0 ) { + TryPasteNodesInGraph(graph, GraphEditorUtility.activeElements.OfType().ToArray(), default(Vector2)); + } + if ( GraphEditorUtility.activeNode != null ) { + GraphEditorUtility.activeElement = GraphEditorUtility.activeNode.Duplicate(graph); + } + //Connections can't be duplicated by themselves. They do so as part of multiple node duplication (at least 2). + e.Use(); + } + + //DELETE + if ( e.commandName == "SoftDelete" || e.commandName == "Delete" ) { + if ( GraphEditorUtility.activeElements != null && GraphEditorUtility.activeElements.Count > 0 ) { + foreach ( var obj in GraphEditorUtility.activeElements.ToArray() ) { + if ( obj is Node ) { + graph.RemoveNode(obj as Node); + } + if ( obj is Connection ) { + graph.RemoveConnection(obj as Connection); + } + } + GraphEditorUtility.activeElements = null; + } + + if ( GraphEditorUtility.activeNode != null ) { + graph.RemoveNode(GraphEditorUtility.activeNode); + GraphEditorUtility.activeElement = null; + } + + if ( GraphEditorUtility.activeConnection != null ) { + graph.RemoveConnection(GraphEditorUtility.activeConnection); + GraphEditorUtility.activeElement = null; + } + e.Use(); + } + } + } + + //No panel is obscuring + if ( GraphEditorUtility.allowClick ) { + + if ( e.type == EventType.MouseDown && e.clickCount == 2 && e.button == 0 ) { + current.maximized = !current.maximized; + e.Use(); + } + + //Right click or shortcut canvas context menu. Opens browser for adding new nodes. + var isContext = e.type == EventType.ContextClick && !e.alt; + var isShortcut = e.type == EventType.KeyDown && e.keyCode == KeyCode.Space && GUIUtility.keyboardControl == 0 && !e.shift; + if ( isContext || isShortcut ) { + GenericMenuBrowser.ShowAsync(e.mousePosition, "Add Node", graph.baseNodeType, () => { return GetAddNodeMenu(graph, canvasMousePos); }); + e.Use(); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + //Paste nodes in target graph + static void TryPasteNodesInGraph(Graph graph, Node[] nodes, Vector2 originPosition) { + var newNodes = Graph.CloneNodes(nodes.ToList(), graph, originPosition); + GraphEditorUtility.activeElements = newNodes.Cast().ToList(); + } + + ///The final generic menu used for adding nodes in the canvas + static GenericMenu GetAddNodeMenu(Graph graph, Vector2 canvasMousePos) { + System.Action Selected = (type) => { GraphEditorUtility.activeElement = graph.AddNode(type, canvasMousePos); }; + var menu = EditorUtils.GetTypeSelectionMenu(graph.baseNodeType, Selected); + menu = graph.CallbackOnCanvasContextMenu(menu, canvasMousePos); + + if ( CopyBuffer.TryGetCache(out Node[] copiedNodes) && copiedNodes.Length > 0 ) { + if ( copiedNodes[0].GetType().IsSubclassOf(graph.baseNodeType) ) { + menu.AddSeparator("/"); + var suffix = copiedNodes.Length == 1 ? copiedNodes[0].GetType().FriendlyName() : copiedNodes.Length.ToString(); + menu.AddItem(new GUIContent(string.Format("Paste Node(s) ({0})", suffix)), false, () => { TryPasteNodesInGraph(graph, copiedNodes, canvasMousePos); }); + } + } + return menu; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs.meta new file mode 100644 index 0000000..744bdf9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Events.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b142672b60f5b17489046d24fc720268 +timeCreated: 1511251909 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs new file mode 100644 index 0000000..ed3dfcc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs @@ -0,0 +1,272 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + //Panels + partial class GraphEditor + { + + private const float PANELS_Y = 2; + private static float inspectorPanelHeight; + private static float inspectorPanelXMax; + private static float blackboardPanelHeight; + private static bool isResizingInspectorPanel; + private static bool isResizingBlackboardPanel; + private static Vector2 inspectorPanelScrollPos; + private static Vector2 blackboardPanelScrollPos; + private static bool inspectorPanelNeedsScroller; + private static bool blackboardPanelNeedsScroller; + + private static UnityEditor.AnimatedValues.AnimFloat inspectorPanelAnimFloat; + private static System.WeakReference _inspectorPanelPreviousSelectionRef; + private static IGraphElement inspectorPanelPreviousSelection { + get { _inspectorPanelPreviousSelectionRef.TryGetTarget(out IGraphElement element); return element; } + set { _inspectorPanelPreviousSelectionRef.SetTarget(value); } + } + + [InitializeOnLoadMethod] + static void Init_Panels() { + inspectorPanelAnimFloat = new UnityEditor.AnimatedValues.AnimFloat(0); + _inspectorPanelPreviousSelectionRef = new System.WeakReference(null); + GraphEditorUtility.onActiveElementChanged -= OnActiveElementChanged; + GraphEditorUtility.onActiveElementChanged += OnActiveElementChanged; + } + + static void OnActiveElementChanged(IGraphElement element) { + if ( Prefs.animatePanels ) { + //cache previous selection so that animate out has something to show + if ( element != null ) { inspectorPanelPreviousSelection = element; } + inspectorPanelAnimFloat.speed = 2.25f; + inspectorPanelAnimFloat.target = element == null ? 0 : 1; + return; + } + inspectorPanelPreviousSelection = null; + inspectorPanelAnimFloat.value = element == null ? 0 : 1; + } + + //This is called outside of windows + static void ShowPanels(Graph graph, Vector2 canvasMousePos) { + ShowGraphCommentsGUI(graph, canvasMousePos); + var panel1 = ShowInspectorGUIPanel(graph, canvasMousePos).ExpandBy(14); + var panel2 = ShowBlackboardGUIPanel(graph, canvasMousePos).ExpandBy(14); + GraphEditorUtility.allowClick = !panel1.Contains(e.mousePosition) && !panel2.Contains(e.mousePosition); + } + + //Show the comments window + static void ShowGraphCommentsGUI(Graph graph, Vector2 canvasMousePos) { + if ( Prefs.showComments && !string.IsNullOrEmpty(graph.comments) ) { + GUI.backgroundColor = Color.white.WithAlpha(0.3f); + var content = EditorUtils.GetTempContent(graph.comments); + var calcHeight = StyleSheet.commentsBox.CalcHeight(content, Prefs.inspectorPanelWidth); + var rect = new Rect(canvasRect.xMin + 2, canvasRect.yMax - calcHeight - 2, Prefs.inspectorPanelWidth, calcHeight); + GUI.Box(rect, graph.comments, StyleSheet.commentsBox); + GUI.backgroundColor = Color.white; + } + } + + //node, connection inspector panel + static Rect ShowInspectorGUIPanel(Graph graph, Vector2 canvasMousePos) { + var inspectorPanel = default(Rect); + + if ( Prefs.useExternalInspector ) { + return inspectorPanel; + } + + if ( inspectorPanelAnimFloat.isAnimating ) { willRepaint = true; } + if ( inspectorPanelAnimFloat.value == 0 && !inspectorPanelAnimFloat.isAnimating ) { + inspectorPanelPreviousSelection = null; + inspectorPanelHeight = 0; + return inspectorPanel; + } + + var inspectedElement = Prefs.animatePanels ? inspectorPanelPreviousSelection : GraphEditorUtility.activeElement; + if ( inspectedElement == null ) { + inspectorPanelHeight = 0; + return inspectorPanel; + } + + GUI.BeginClip(canvasRect); + + var scrollWidth = inspectorPanelNeedsScroller ? 16 : 0; + var posX = 5; + var posY = PANELS_Y; + var headerHeight = 30; + + inspectorPanel.x = Mathf.Lerp(-Prefs.inspectorPanelWidth - scrollWidth, posX, inspectorPanelAnimFloat.value); + inspectorPanel.y = posY; + inspectorPanel.width = Prefs.inspectorPanelWidth; + inspectorPanel.height = inspectorPanelHeight; + + var groupRect = inspectorPanel.ExpandBy(0, 0, scrollWidth, 0); + GUI.Box(groupRect, string.Empty, StyleSheet.windowShadow); + //remove potential new lines. we want title to be shown as one liner here + var displayName = !string.IsNullOrEmpty(inspectedElement.name) ? inspectedElement.name.Replace("\n", "") : inspectedElement.name; + GUI.Box(groupRect, displayName, StyleSheet.editorPanel); + + var headerRect = new Rect(inspectorPanel.x, inspectorPanel.y, inspectorPanel.width, 30); + var resizeRect = Rect.MinMaxRect(inspectorPanel.xMax - 2, inspectorPanel.yMin, inspectorPanel.xMax + 2, inspectorPanel.yMax); + var popRect = new Rect(0, 0, 16, 16); + var gearRect = new Rect(0, 0, 16, 16); + popRect.center = new Vector2(inspectorPanel.xMin + 10, headerRect.center.y); + gearRect.center = new Vector2(inspectorPanel.xMax - 16, headerRect.center.y); + + EditorGUIUtility.AddCursorRect(resizeRect, MouseCursor.ResizeHorizontal); + EditorGUIUtility.AddCursorRect(popRect, MouseCursor.Link); + EditorGUIUtility.AddCursorRect(gearRect, MouseCursor.Link); + + if ( e.type == EventType.MouseDown && resizeRect.Contains(e.mousePosition) ) { isResizingInspectorPanel = true; e.Use(); } + if ( isResizingInspectorPanel && e.type == EventType.Layout ) { Prefs.inspectorPanelWidth += e.delta.x; } + if ( e.rawType == EventType.MouseUp ) { isResizingInspectorPanel = false; } + + GUI.color = GUI.color.WithAlpha(0.5f); + if ( GUI.Button(popRect, EditorUtils.GetTempContent(Icons.minMaxIcon, "Open External Inspector"), GUIStyle.none) ) { + ExternalInspectorWindow.ShowWindow(); + } + GUI.color = Color.white; + if ( inspectedElement is Node ) { + if ( GUI.Button(gearRect, EditorUtils.GetTempContent(Icons.gearPopupIcon, "Context Menu"), GUIStyle.none) ) { + Node.GetNodeMenu_Single(inspectedElement as Node).ShowAsContext(); + } + } + + EditorGUIUtility.AddCursorRect(headerRect, MouseCursor.Link); + if ( GUI.Button(headerRect, string.Empty, GUIStyle.none) ) { + Prefs.showNodePanel = !Prefs.showNodePanel; + } + + GUI.BeginGroup(groupRect); + if ( Prefs.showNodePanel ) { + + var contentRect = Rect.MinMaxRect(2, headerHeight, inspectorPanel.width - 2, inspectorPanel.height); + var position = Rect.MinMaxRect(0, headerHeight, inspectorPanel.width + scrollWidth, Mathf.Min(inspectorPanel.height, canvasRect.height - posX)); + var viewRect = Rect.MinMaxRect(0, headerHeight, inspectorPanel.width, inspectorPanel.height); + inspectorPanelNeedsScroller = position.height < viewRect.height; + inspectorPanelScrollPos = GUI.BeginScrollView(position, inspectorPanelScrollPos, viewRect, false, false); + GUILayout.BeginArea(contentRect); + + if ( inspectedElement is Node ) { Node.ShowNodeInspectorGUI((Node)inspectedElement); } + if ( inspectedElement is Connection ) { Connection.ShowConnectionInspectorGUI((Connection)inspectedElement); } + + EditorUtils.EndOfInspector(); + if ( e.type == EventType.Repaint ) { + inspectorPanelHeight = GUILayoutUtility.GetLastRect().yMax + headerHeight + 5; + } + + GUILayout.EndArea(); + GUI.EndScrollView(); + + } else { + + inspectorPanelHeight = 55; + var contentRect = Rect.MinMaxRect(0, headerHeight, inspectorPanel.width, inspectorPanel.height); + EditorGUIUtility.AddCursorRect(contentRect, MouseCursor.Link); + if ( GUI.Button(contentRect, "...", Styles.centerLabel) ) { + Prefs.showNodePanel = true; + } + } + + GUI.EndGroup(); + GUI.EndClip(); + + inspectorPanel.x += canvasRect.x; + inspectorPanel.y += canvasRect.y; + inspectorPanelXMax = inspectorPanel.xMax; + + return inspectorPanel; + } + + + //blackboard inspector panel + static Rect ShowBlackboardGUIPanel(Graph graph, Vector2 canvasMousePos) { + var blackboardPanel = default(Rect); + if ( graph.blackboard == null ) { + blackboardPanelHeight = 0; + return blackboardPanel; + } + + GUI.BeginClip(canvasRect); + + var scrollWidth = blackboardPanelNeedsScroller ? 16 : 0; + var posX = scrollWidth + 5; + var posY = PANELS_Y; + var headerHeight = 30; + + blackboardPanel.x = canvasRect.xMax - Prefs.blackboardPanelWidth - posX - canvasRect.x; + blackboardPanel.y = posY; + blackboardPanel.width = Prefs.blackboardPanelWidth; + blackboardPanel.height = blackboardPanelHeight; + blackboardPanel.xMin = Mathf.Max(blackboardPanel.xMin, inspectorPanelXMax + 2); + + var resizeRect = Rect.MinMaxRect(blackboardPanel.xMin - 2, blackboardPanel.yMin, blackboardPanel.xMin + 2, blackboardPanel.yMax); + EditorGUIUtility.AddCursorRect(resizeRect, MouseCursor.ResizeHorizontal); + if ( e.type == EventType.MouseDown && resizeRect.Contains(e.mousePosition) ) { isResizingBlackboardPanel = true; e.Use(); } + if ( isResizingBlackboardPanel && e.type == EventType.Layout ) { Prefs.blackboardPanelWidth -= e.delta.x; } + if ( e.rawType == EventType.MouseUp ) { isResizingBlackboardPanel = false; } + + var headerRect = new Rect(blackboardPanel.x, blackboardPanel.y, blackboardPanel.width, 30); + EditorGUIUtility.AddCursorRect(headerRect, MouseCursor.Link); + if ( GUI.Button(headerRect, string.Empty, GUIStyle.none) ) { + Prefs.showBlackboard = !Prefs.showBlackboard; + } + + var groupRect = blackboardPanel.ExpandBy(0, 0, scrollWidth, 0); + GUI.Box(groupRect, string.Empty, StyleSheet.windowShadow); + GUI.Box(groupRect, "Blackboard Variables", StyleSheet.editorPanel); + + GUI.BeginGroup(groupRect); + if ( Prefs.showBlackboard ) { + + var contentRect = Rect.MinMaxRect(2, headerHeight, blackboardPanel.width - 2, blackboardPanel.height); + var position = Rect.MinMaxRect(0, headerHeight, blackboardPanel.width + scrollWidth, Mathf.Min(blackboardPanel.height, canvasRect.height - posX) + scrollWidth); + var viewRect = Rect.MinMaxRect(0, headerHeight, blackboardPanel.width, blackboardPanel.height); + blackboardPanelNeedsScroller = position.height < viewRect.height; + blackboardPanelScrollPos = GUI.BeginScrollView(position, blackboardPanelScrollPos, viewRect, false, false); + GUILayout.BeginArea(contentRect); + + BlackboardEditor.ShowVariables(graph.blackboard, graph); + EditorUtils.EndOfInspector(); + if ( e.type == EventType.Repaint ) { + blackboardPanelHeight = GUILayoutUtility.GetLastRect().yMax + headerHeight + 5; + } + + GUILayout.EndArea(); + GUI.EndScrollView(); + + } else { + + blackboardPanelHeight = 55; + var contentRect = Rect.MinMaxRect(0, headerHeight, blackboardPanel.width, blackboardPanel.height); + EditorGUIUtility.AddCursorRect(contentRect, MouseCursor.Link); + if ( GUI.Button(contentRect, "...", Styles.centerLabel) ) { + Prefs.showBlackboard = true; + } + } + + GUI.EndGroup(); + GUI.EndClip(); + + blackboardPanel.x += canvasRect.x; + blackboardPanel.y += canvasRect.y; + + if ( graph.canAcceptVariableDrops && BlackboardEditor.pickedVariable != null && BlackboardEditor.pickedVariableBlackboard.IsPartOf(graph.blackboard) ) { + GUI.Label(new Rect(e.mousePosition.x + 15, e.mousePosition.y, 100, 18), "Drop Variable", StyleSheet.labelOnCanvas); + if ( e.type == EventType.MouseUp && !blackboardPanel.Contains(e.mousePosition) ) { + graph.CallbackOnVariableDropInGraph(BlackboardEditor.pickedVariableBlackboard, BlackboardEditor.pickedVariable, canvasMousePos); + BlackboardEditor.ResetPick(); + } + } + + return blackboardPanel; + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs.meta new file mode 100644 index 0000000..5d4eeb6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Panels.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bc2159154c8e5ab49a70e05914b5eb90 +timeCreated: 1511249750 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs new file mode 100644 index 0000000..4020373 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs @@ -0,0 +1,282 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using System.Linq; + +namespace NodeCanvas.Editor +{ + + ///Toolbar + public partial class GraphEditor + { + + //This is called outside Begin/End Windows from GraphEditor. + public static void ShowToolbar(Graph graph) { + + var owner = graph.agent as GraphOwner; + + GUILayout.BeginHorizontal(EditorStyles.toolbar); + + //---------------------------------------------------------------------------------------------- + //Left side + //---------------------------------------------------------------------------------------------- + + GUILayout.Space(4); + + if ( GUILayout.Button("File", EditorStyles.toolbarDropDown, GUILayout.Width(50)) ) { + GetToolbarMenu_File(graph, owner).ShowAsContext(); + } + + if ( GUILayout.Button("Edit", EditorStyles.toolbarDropDown, GUILayout.Width(50)) ) { + GetToolbarMenu_Edit(graph, owner).ShowAsContext(); + } + + if ( GUILayout.Button("Prefs", EditorStyles.toolbarDropDown, GUILayout.Width(50)) ) { + GetToolbarMenu_Prefs(graph, owner).ShowAsContext(); + } + + GUILayout.Space(10); + + if ( owner != null && GUILayout.Button("Select Owner", EditorStyles.toolbarButton) ) { + Selection.activeObject = owner; + EditorGUIUtility.PingObject(owner); + } + + if ( EditorUtility.IsPersistent(graph) && GUILayout.Button("Select Graph", EditorStyles.toolbarButton) ) { + Selection.activeObject = graph; + EditorGUIUtility.PingObject(graph); + } + + GUILayout.Space(10); + + EditorGUIUtility.SetIconSize(new Vector2(15, 15)); + if ( GUILayout.Button(new GUIContent(StyleSheet.log, "Open Graph Console"), EditorStyles.toolbarButton) ) { + GraphConsole.ShowWindow(); + } + + if ( GUILayout.Button(new GUIContent(StyleSheet.lens, "Open Graph Explorer"), EditorStyles.toolbarButton) ) { + GraphExplorer.ShowWindow(); + } + + if ( GUILayout.Button(new GUIContent(StyleSheet.refactor, "Open Graph Refactor"), EditorStyles.toolbarButton) ) { + GraphRefactor.ShowWindow(); + } + EditorGUIUtility.SetIconSize(Vector2.zero); + + GUILayout.Space(10); + + ///---------------------------------------------------------------------------------------------- + + graph.CallbackOnGraphEditorToolbar(); + + //---------------------------------------------------------------------------------------------- + //Mid + //---------------------------------------------------------------------------------------------- + + GUILayout.Space(10); + GUILayout.FlexibleSpace(); + + //... + + + + //... + + GUILayout.FlexibleSpace(); + GUILayout.Space(10); + + //---------------------------------------------------------------------------------------------- + //Right side + //---------------------------------------------------------------------------------------------- + + GUI.backgroundColor = Color.clear; + GUI.color = new Color(1, 1, 1, 0.4f); + if ( GUILayout.Button(string.Format("{0} @ {1} v{2}", graph.GetType().Name, graphInfoAtt != null ? graphInfoAtt.packageName : "NodeCanvas", NodeCanvas.Framework.Internal.GraphSource.FRAMEWORK_VERSION.ToString("0.00")), EditorStyles.toolbarButton) ) { UnityEditor.Help.BrowseURL("https://paradoxnotion.com"); } + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + GUI.color = Color.white; + GUI.backgroundColor = Color.white; + GUILayout.Space(10); + + + //GRAPHOWNER JUMP SELECTION + if ( owner != null ) { + if ( GUILayout.Button(string.Format("[{0}]", owner.gameObject.name), EditorStyles.toolbarDropDown, GUILayout.Width(120)) ) { + var menu = new GenericMenu(); + foreach ( var _o in Object.FindObjectsByType(FindObjectsSortMode.InstanceID).OrderBy(x => x.gameObject != owner.gameObject) ) { + var o = _o; + menu.AddItem(new GUIContent(o.gameObject.name + "/" + o.GetType().Name), o == owner, () => { SetReferences(o); }); + } + menu.ShowAsContext(); + } + } + + Prefs.isEditorLocked = GUILayout.Toggle(Prefs.isEditorLocked, "Lock", EditorStyles.toolbarButton); + GUI.contentColor = EditorGUIUtility.isProSkin ? Color.white : Colors.Grey(0.5f); + if ( GUILayout.Button(Icons.helpIcon, EditorStyles.toolbarButton) ) { WelcomeWindow.ShowWindow(graph.GetType()); } + GUI.contentColor = Color.white; + + GUILayout.Space(4); + + GUILayout.EndHorizontal(); + GUI.backgroundColor = Color.white; + GUI.color = Color.white; + } + + ///---------------------------------------------------------------------------------------------- + + //FILE MENU + static GenericMenu GetToolbarMenu_File(Graph graph, GraphOwner owner) { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Clear"), false, () => + { + if ( EditorUtility.DisplayDialog("Clear Canvas", "This will delete all nodes of the currently viewing graph!\nAre you sure?", "YES", "NO!") ) { + graph.ClearGraph(); + } + }); + + menu.AddItem(new GUIContent("Import JSON"), false, () => + { + if ( graph.allNodes.Count > 0 && !EditorUtility.DisplayDialog("Import Graph", "All current graph information will be lost. Are you sure?", "YES", "NO") ) { + return; + } + + var path = EditorUtility.OpenFilePanel(string.Format("Import '{0}' Graph", graph.GetType().Name), "Assets", graph.GetGraphJSONFileExtension()); + if ( !string.IsNullOrEmpty(path) ) { + if ( graph.Deserialize(System.IO.File.ReadAllText(path), null, true) == false ) { //true: validate, null: graph._objectReferences + EditorUtility.DisplayDialog("Import Failure", "Please read the logs for more information", "OK", string.Empty); + } + } + }); + + menu.AddItem(new GUIContent("Export JSON"), false, () => + { + var path = EditorUtility.SaveFilePanelInProject(string.Format("Export '{0}' Graph", graph.GetType().Name), graph.name, graph.GetGraphJSONFileExtension(), string.Empty); + if ( !string.IsNullOrEmpty(path) ) { + var json = graph.Serialize(null); + json = ParadoxNotion.Serialization.JSONSerializer.PrettifyJson(json); + System.IO.File.WriteAllText(path, json); + AssetDatabase.Refresh(); + } + }); + + menu.AddItem(new GUIContent("Export JSON (Include SubGraphs)"), false, () => + { + foreach ( var subgraph in graph.GetAllNestedGraphs(true).Prepend(graph) ) { + var subpath = EditorUtility.SaveFilePanelInProject(string.Format("Export '{0}' Graph", subgraph.GetType().Name), subgraph.name, subgraph.GetGraphJSONFileExtension(), string.Empty); + if ( !string.IsNullOrEmpty(subpath) ) { + var subjson = subgraph.Serialize(null); + subjson = ParadoxNotion.Serialization.JSONSerializer.PrettifyJson(subjson); + System.IO.File.WriteAllText(subpath, subjson); + } + } + AssetDatabase.Refresh(); + }); + + menu.AddItem(new GUIContent("Show JSON"), false, () => + { + graph.SelfSerialize(); + ParadoxNotion.Serialization.JSONSerializer.ShowData(graph.GetSerializedJsonData(), graph.name); + }); + + return menu; + } + + ///---------------------------------------------------------------------------------------------- + + //EDIT MENU + static GenericMenu GetToolbarMenu_Edit(Graph graph, GraphOwner owner) { + var menu = new GenericMenu(); + //Bind + if ( !Application.isPlaying && owner != null && !owner.graphIsBound ) { + menu.AddItem(new GUIContent("Bind To Owner"), false, () => + { + if ( EditorUtility.DisplayDialog("Bind Graph", "This will make a local copy of the graph, bound to the owner.\n\nThis allows you to make local changes and assign scene object references directly.\n\nNote that you can also use scene object references through the use of Blackboard Variables.\n\nBind Graph?", "YES", "NO") ) { + UndoUtility.RecordObject(owner, "New Local Graph"); + owner.SetBoundGraphReference(owner.graph); + UndoUtility.SetDirty(owner); + } + }); + } else menu.AddDisabledItem(new GUIContent("Bind To Owner")); + + //Save to asset + if ( !EditorUtility.IsPersistent(graph) ) { + menu.AddItem(new GUIContent("Save To Asset"), false, () => + { + var newGraph = (Graph)EditorUtils.CreateAsset(graph.GetType()); + if ( newGraph != null ) { + EditorUtility.CopySerialized(graph, newGraph); + newGraph.Validate(); + AssetDatabase.SaveAssets(); + } + }); + } else menu.AddDisabledItem(new GUIContent("Save To Asset")); + + //Create defined vars + if ( graph.blackboard != null ) { + foreach ( var bb in graph.blackboard.GetAllParents(true).Reverse() ) { + var category = "Promote Missing Parameters To Variables/"; + menu.AddItem(new GUIContent(category + $"In '{bb.identifier}' Blackboard"), false, () => + { + if ( EditorUtility.DisplayDialog("Promote Missing Parameters", "This will fill the target Blackboard with a Variable for each defined missing Parameter in the graph.\nContinue?", "YES", "NO") ) { + UndoUtility.RecordObject(graph, "Promote Variables"); + UndoUtility.RecordObject(bb.unityContextObject, "Promote Variables"); + graph.PromoteMissingParametersToVariables(bb); + UndoUtility.SetDirty(graph); + UndoUtility.SetDirty(bb.unityContextObject); + } + }); + } + } else menu.AddDisabledItem(new GUIContent("Promote Defined Parameters To Variables")); + + menu.AddItem(new GUIContent("Scan Graph for Serialized Struct Types"), false, () => + { + GraphEditorUtility.ScanForStructTypesAndAppendThem(graph); + }); + + if ( !Application.isPlaying ) { + menu.AddItem(new GUIContent("Re-Validate Graph"), false, () => + { + graph.SelfDeserialize(); + graph.Validate(); + GraphEditorUtility.activeElement = null; + FullDrawPass(); + }); + } else menu.AddDisabledItem(new GUIContent("Re-Validate Graph")); + + return menu; + } + + ///---------------------------------------------------------------------------------------------- + + //PREFS MENU + static GenericMenu GetToolbarMenu_Prefs(Graph graph, GraphOwner owner) { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Show Comments"), Prefs.showComments, () => { Prefs.showComments = !Prefs.showComments; }); + menu.AddItem(new GUIContent("Show Summary Info"), Prefs.showTaskSummary, () => { Prefs.showTaskSummary = !Prefs.showTaskSummary; }); + menu.AddItem(new GUIContent("Show Node IDs"), Prefs.showNodeIDs, () => { Prefs.showNodeIDs = !Prefs.showNodeIDs; }); + menu.AddItem(new GUIContent("Show Node Running Times"), Prefs.showNodeElapsedTimes, () => { Prefs.showNodeElapsedTimes = !Prefs.showNodeElapsedTimes; }); + menu.AddItem(new GUIContent("Show Grid"), Prefs.showGrid, () => { Prefs.showGrid = !Prefs.showGrid; }); + menu.AddItem(new GUIContent("Grid Snap"), Prefs.snapToGrid, () => { Prefs.snapToGrid = !Prefs.snapToGrid; }); + menu.AddItem(new GUIContent("Log Events Info"), Prefs.logEventsInfo, () => { Prefs.logEventsInfo = !Prefs.logEventsInfo; }); + menu.AddItem(new GUIContent("Log Variables Info"), Prefs.logVariablesInfo, () => { Prefs.logVariablesInfo = !Prefs.logVariablesInfo; }); + menu.AddItem(new GUIContent("Breakpoints Pause Editor"), Prefs.breakpointPauseEditor, () => { Prefs.breakpointPauseEditor = !Prefs.breakpointPauseEditor; }); + menu.AddItem(new GUIContent("Animate Inspector Panel"), Prefs.animatePanels, () => { Prefs.animatePanels = !Prefs.animatePanels; }); + menu.AddItem(new GUIContent("Show Hierarchy Icons"), Prefs.showHierarchyIcons, () => { Prefs.showHierarchyIcons = !Prefs.showHierarchyIcons; }); + menu.AddItem(new GUIContent("Collapse Generics In Browser"), Prefs.collapseGenericTypes, () => { Prefs.collapseGenericTypes = !Prefs.collapseGenericTypes; }); + menu.AddItem(new GUIContent("Connection Style/Hard"), false, () => { Prefs.connectionsMLT = 1f; }); + menu.AddItem(new GUIContent("Connection Style/Soft"), false, () => { Prefs.connectionsMLT = 0.75f; }); + menu.AddItem(new GUIContent("Connection Style/Softer"), false, () => { Prefs.connectionsMLT = 0.5f; }); + menu.AddItem(new GUIContent("Connection Style/Direct"), false, () => { Prefs.connectionsMLT = 0f; }); + if ( graph.isTree ) { + menu.AddItem(new GUIContent("Automatic Hierarchical Move"), Prefs.hierarchicalMove, () => { Prefs.hierarchicalMove = !Prefs.hierarchicalMove; }); + } + menu.AddItem(new GUIContent("Open Preferred Types Editor..."), false, () => { TypePrefsEditorWindow.ShowWindow(); }); + return menu; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs.meta new file mode 100644 index 0000000..42ae4d4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.Toolbar.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c6950c3a61f05749bda6d3e3e75012d +timeCreated: 1511249310 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs new file mode 100644 index 0000000..560c209 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs @@ -0,0 +1,1357 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using ParadoxNotion; +using ParadoxNotion.Design; +using NodeCanvas.Framework; +using CanvasGroup = NodeCanvas.Framework.CanvasGroup; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Editor +{ + + public partial class GraphEditor : EditorWindow + { + + //the root graph that was first opened in the editor + [System.NonSerialized] + private Graph _rootGraph; + private int _rootGraphID; + + //the GrapOwner if any, that was used to open the editor and from which to read the rootGraph + [System.NonSerialized] + private GraphOwner _targetOwner; + private int _targetOwnerID; + + ///---------------------------------------------------------------------------------------------- + + //the current instance of the opened editor + public static GraphEditor current { get; private set; } + //the current graph loaded for editing. Can be a nested graph of the root graph + public static Graph currentGraph { get; private set; } + + ///---------------------------------------------------------------------------------------------- + const float ZOOM_MAX = 1f; + const float ZOOM_MIN = 0.25f; + const int TAB_HEIGHT = 21; + const int TOP_MARGIN = TAB_HEIGHT + 0; + const int BOTTOM_MARGIN = 5; + const int SIDE_MARGIN = 5; + const int GRID_SIZE = 20; + private static Rect canvasRect; //rect within which the graph is drawn (the window) + private static Rect viewRect; //the panning rect that is drawn within canvasRect + private static Rect minimapRect; //rect to show minimap within + + ///---------------------------------------------------------------------------------------------- + + private static Event e; + private static bool isMultiSelecting; + private static Vector2 selectionStartPos; + private static bool isResizingMinimap; + private static bool isDraggingMinimap; + private static bool willRepaint = true; + private static bool fullDrawPass = true; + private static System.Action OnDoPopup; + + private static Node[] tempCanvasGroupNodes; + private static CanvasGroup[] tempCanvasGroupGroups; + + ///---------------------------------------------------------------------------------------------- + + private static float lastUpdateTime = -1; + private static Vector2? smoothPan; + private static float? smoothZoomFactor; + private static Vector2 _panVelocity = Vector2.one; + private static float _zoomVelocity = 1; + private static float pingValue; + private static Rect pingRect; + private static GraphInfoAttribute graphInfoAtt; + + ///---------------------------------------------------------------------------------------------- + + private static bool welcomeShown; + + ///---------------------------------------------------------------------------------------------- + + public static event System.Action onCurrentGraphChanged; + + //The graph from which we start editing + public static Graph rootGraph { + get + { + if ( current._rootGraph == null ) { + current._rootGraph = EditorUtility.InstanceIDToObject(current._rootGraphID) as Graph; + } + return current._rootGraph; + } + private set + { + current._rootGraph = value; + current._rootGraphID = value != null ? value.GetInstanceID() : 0; + } + } + + //The owner of the root graph if any + public static GraphOwner targetOwner { + get + { + if ( current == null ) { //this fix the maximize/minimize window + current = OpenWindow(); + } + + if ( current._targetOwner == null ) { + current._targetOwner = EditorUtility.InstanceIDToObject(current._targetOwnerID) as GraphOwner; + } + return current._targetOwner; + } + private set + { + current._targetOwner = value; + current._targetOwnerID = value != null ? value.GetInstanceID() : 0; + } + } + + //The translation of the graph + private static Vector2 pan { + get { return currentGraph != null ? currentGraph.translation : viewCanvasCenter; } + set + { + if ( currentGraph != null ) { + var t = value; + if ( smoothPan == null ) { + t.x = Mathf.Round(t.x); //pixel perfect correction + t.y = Mathf.Round(t.y); //pixel perfect correction + } + currentGraph.translation = t; + } + } + } + + //The zoom factor of the graph + private static float zoomFactor { + get { return currentGraph != null ? Mathf.Clamp(currentGraph.zoomFactor, ZOOM_MIN, ZOOM_MAX) : ZOOM_MAX; } + set { if ( currentGraph != null ) currentGraph.zoomFactor = Mathf.Clamp(value, ZOOM_MIN, ZOOM_MAX); } + } + + //The center of the canvas + private static Vector2 viewCanvasCenter { + get { return viewRect.size / 2; } + } + + //The mouse position in the canvas + private static Vector2 mousePosInCanvas { + get { return ViewToCanvas(Event.current.mousePosition); } + } + + //window width. Handles retina + private static float screenWidth { + get { return Screen.width / EditorGUIUtility.pixelsPerPoint; } + } + + //window height. Handles retina + private static float screenHeight { + get { return Screen.height / EditorGUIUtility.pixelsPerPoint; } + } + + ///---------------------------------------------------------------------------------------------- + //... + void OnEnable() { + current = this; + titleContent = new GUIContent("Canvas", StyleSheet.canvasIcon); + + willRepaint = true; + fullDrawPass = true; + wantsMouseMove = false; + minSize = new Vector2(700, 300); + + EditorApplication.playModeStateChanged -= OnPlayModeChange; + EditorApplication.playModeStateChanged += OnPlayModeChange; + + UnityEditor.SceneManagement.PrefabStage.prefabStageClosing -= OnPrefabStageClosing; + UnityEditor.SceneManagement.PrefabStage.prefabStageClosing += OnPrefabStageClosing; + + Selection.selectionChanged -= OnUnityObjectSelectionChange; + Selection.selectionChanged += OnUnityObjectSelectionChange; + + Logger.RemoveListener(OnLogMessageReceived); + Logger.AddListener(OnLogMessageReceived); + + Undo.undoRedoPerformed -= OnUndoRedoPerformed; + Undo.undoRedoPerformed += OnUndoRedoPerformed; + } + + //... + void OnDisable() { + current = null; + welcomeShown = false; + GraphEditorUtility.activeElement = null; + GraphEditorUtility.activeElements = null; + tempCanvasGroupNodes = null; + tempCanvasGroupGroups = null; + + EditorApplication.playModeStateChanged -= OnPlayModeChange; + + UnityEditor.SceneManagement.PrefabStage.prefabStageClosing -= OnPrefabStageClosing; + + Selection.selectionChanged -= OnUnityObjectSelectionChange; + Logger.RemoveListener(OnLogMessageReceived); + Undo.undoRedoPerformed -= OnUndoRedoPerformed; + } + + //... + void OnUndoRedoPerformed() { + if ( current == null || currentGraph == null ) { return; } + GraphEditorUtility.activeElement = null; + GraphEditorUtility.activeElements = null; + tempCanvasGroupNodes = null; + tempCanvasGroupGroups = null; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + willRepaint = true; + fullDrawPass = true; + if ( !Application.isPlaying ) { + UpdateReferencesAndNodeIDs(); + currentGraph.Validate(); + } + } + + //... + void OnPlayModeChange(PlayModeStateChange state) { + RemoveNotification(); + GraphEditorUtility.activeElement = null; + welcomeShown = true; + willRepaint = true; + fullDrawPass = true; + } + + void OnPrefabStageClosing(UnityEditor.SceneManagement.PrefabStage stage) { + //when exiting prefab stage we are left with a floating graph instance which can creat confusion + SetReferences(null, null, null); + } + + //Change viewing graph based on Graph or GraphOwner + void OnUnityObjectSelectionChange() { + + if ( Prefs.isEditorLocked && rootGraph != null ) { + return; + } + + if ( Selection.activeObject is GraphOwner ) { + SetReferences((GraphOwner)Selection.activeObject); + return; + } + + if ( Selection.activeObject is Graph ) { + SetReferences((Graph)Selection.activeObject); + return; + } + + if ( Selection.activeGameObject != null ) { + var foundOwner = Selection.activeGameObject.GetComponent(); + if ( foundOwner != null ) { SetReferences(foundOwner); } + } + } + + //Listen to Logs and return true if handled + bool OnLogMessageReceived(Logger.Message msg) { + if ( msg.tag == LogTag.EDITOR ) { + if ( !string.IsNullOrEmpty(msg.text) ) { + ShowNotification(new GUIContent(msg.text)); + } + return true; + } + return false; + } + + //Whenever the graph we are viewing has changed and after the fact. + void OnCurrentGraphChanged() { + graphInfoAtt = currentGraph?.GetType().RTGetAttributesRecursive().LastOrDefault(); + UpdateReferencesAndNodeIDs(); + GraphEditorUtility.activeElement = null; + willRepaint = true; + fullDrawPass = true; + smoothPan = null; + smoothZoomFactor = null; + if ( onCurrentGraphChanged != null ) { + onCurrentGraphChanged(currentGraph); + } + } + + //Update the references for editor convenience. + void UpdateReferencesAndNodeIDs() { + + rootGraph = targetOwner != null ? targetOwner.graph : rootGraph; + + //do this in editor only. In runtime these are updated when graph initialize anyway + if ( !Application.isPlaying && rootGraph != null ) { + rootGraph.UpdateNodeIDs(true); + rootGraph.UpdateReferencesFromOwner(targetOwner, true); + + //update refs for the currenlty viewing nested graph as well + var deepGraph = GetCurrentGraph(rootGraph); + deepGraph.UpdateNodeIDs(true); + deepGraph.UpdateReferencesFromOwner(targetOwner, true); + } + } + + [UnityEditor.Callbacks.OnOpenAsset(1)] + public static bool OpenAsset(int instanceID, int line) { + var target = EditorUtility.InstanceIDToObject(instanceID) as Graph; + if ( target != null ) { + GraphEditor.OpenWindow(target); + return true; + } + return false; + } + + ///Open the window without any references + public static GraphEditor OpenWindow() { return OpenWindow(null, null, null); } + ///Opening the window for a graph owner + public static GraphEditor OpenWindow(GraphOwner owner) { return OpenWindow(owner.graph, owner, owner.blackboard); } + ///For opening the window from gui button in the nodegraph's Inspector. + public static GraphEditor OpenWindow(Graph newGraph) { return OpenWindow(newGraph, null, newGraph.blackboard); } + ///Open GraphEditor initializing target graph + public static GraphEditor OpenWindow(Graph newGraph, GraphOwner owner, IBlackboard blackboard) { + var window = GetWindow(); + SetReferences(newGraph, owner, blackboard); + if ( !Prefs.hideWelcomeWindow && !Application.isPlaying && welcomeShown == false ) { + welcomeShown = true; + var graphType = newGraph != null ? newGraph.GetType() : null; + WelcomeWindow.ShowWindow(graphType); + } + return window; + } + + ///Set GraphEditor inspected references + public static void SetReferences(GraphOwner newOwner) { SetReferences(newOwner.graph, newOwner, newOwner.blackboard); } + ///Set GraphEditor inspected references + public static void SetReferences(Graph newGraph) { SetReferences(newGraph, null, newGraph.blackboard); } + ///Set GraphEditor inspected references + public static void SetReferences(Graph newGraph, GraphOwner newOwner, IBlackboard newBlackboard) { + if ( current == null ) { + return; + } + willRepaint = true; + fullDrawPass = true; + rootGraph = newGraph; + targetOwner = newOwner; + if ( rootGraph != null ) { + rootGraph.SetCurrentChildGraphAssignable(null); + if ( !Application.isPlaying ) { + rootGraph.UpdateNodeIDs(true); + rootGraph.UpdateReferences(newOwner, newBlackboard, true); + } + } + GraphEditorUtility.activeElement = null; + current.Repaint(); + } + + ///Editor update + void Update() { + var currentTime = Time.realtimeSinceStartup; + var deltaTime = currentTime - lastUpdateTime; + lastUpdateTime = currentTime; + + var needsRepaint = false; + needsRepaint |= UpdateSmoothPan(deltaTime); + needsRepaint |= UpdateSmoothZoom(deltaTime); + needsRepaint |= UpdatePing(deltaTime); + if ( needsRepaint ) { + Repaint(); + } + } + + ///Update smooth pan + bool UpdateSmoothPan(float deltaTime) { + + if ( smoothPan == null ) { + return false; + } + + var targetPan = (Vector2)smoothPan; + if ( ( targetPan - pan ).magnitude <= 0.1f ) { + smoothPan = null; + return false; + } + + pan = Vector2.SmoothDamp(pan, targetPan, ref _panVelocity, 0.08f, Mathf.Infinity, deltaTime); + return true; + } + + ///Update smooth pan + bool UpdateSmoothZoom(float deltaTime) { + + if ( smoothZoomFactor == null ) { + return false; + } + + var targetZoom = (float)smoothZoomFactor; + if ( Mathf.Abs(targetZoom - zoomFactor) < 0.0001f ) { + smoothZoomFactor = null; + return false; + } + + zoomFactor = Mathf.SmoothDamp(zoomFactor, targetZoom, ref _zoomVelocity, 0.08f, Mathf.Infinity, deltaTime); + if ( Mathf.Abs(1 - zoomFactor) < 0.0001f ) { zoomFactor = 1; } + return true; + } + + ///Update ping value + bool UpdatePing(float deltaTime) { + if ( pingValue > 0 ) { + pingValue -= deltaTime; + return true; + } + return false; + } + + ///---------------------------------------------------------------------------------------------- + + //GUI space to canvas space + static Vector2 ViewToCanvas(Vector2 viewPos) { + return ( viewPos - pan ) / zoomFactor; + } + + //Canvas space to GUI space + static Vector2 CanvasToView(Vector2 canvasPos) { + return ( canvasPos * zoomFactor ) + pan; + } + + //Show modal quick popup + static void DoPopup(System.Action Call) { + OnDoPopup = Call; + } + + //Just so that there is some repainting going on + void OnInspectorUpdate() { + if ( !willRepaint ) { + Repaint(); + } + } + + ///---------------------------------------------------------------------------------------------- + + //... + void OnGUI() { + + //Init gui + // GUI.skin = null; + GUI.color = Color.white; + GUI.backgroundColor = Color.white; + GUI.skin.label.richText = true; + e = Event.current; + GraphEditorUtility.realMousePosition = e.mousePosition; + + //canvas an minimap rects + canvasRect = Rect.MinMaxRect(SIDE_MARGIN, TOP_MARGIN, position.width - SIDE_MARGIN, position.height - BOTTOM_MARGIN); + var aspect = canvasRect.width / canvasRect.height; + minimapRect = Rect.MinMaxRect(canvasRect.xMax - ( Prefs.minimapSize * aspect ), canvasRect.yMax - Prefs.minimapSize, canvasRect.xMax - 2, canvasRect.yMax - 2); + //canvas bg + Styles.Draw(canvasRect, StyleSheet.canvasBG); + + if ( !CheckSumOK() ) { + return; + } + + ///---------------------------------------------------------------------------------------------- + + if ( e.type == EventType.MouseDown ) { + RemoveNotification(); + } + + if ( mouseOverWindow == current && ( e.isMouse || e.isKey ) ) { + willRepaint = true; + } + + ///should we set dirty? Put in practise at the end + var willDirty = e.rawType == EventType.MouseUp; + + + //background grid + DrawGrid(canvasRect, pan, zoomFactor); + //handle minimap + HandleMinimapEvents(minimapRect); + //PRE nodes events + HandlePreNodesGraphEvents(currentGraph, mousePosInCanvas); + + //begin zoom + var originalCanvasRect = canvasRect; + var originalMatrix = default(Matrix4x4); + if ( zoomFactor != 1 ) { + canvasRect = StartZoomArea(canvasRect, zoomFactor, out originalMatrix); + } + + { + // calc viewRect + viewRect = canvasRect; + viewRect.x = 0; + viewRect.y = 0; + viewRect.position -= pan / zoomFactor; + + //main group + GUI.BeginClip(canvasRect, pan / zoomFactor, default(Vector2), false); + { + DoCanvasGroups(); + BeginWindows(); + ShowNodesGUI(currentGraph, viewRect, fullDrawPass, mousePosInCanvas, zoomFactor); + EndWindows(); + DrawPings(); + DoCanvasRectSelection(); + } + GUI.EndClip(); + } + + //end zoom + if ( zoomFactor != 1 && originalMatrix != default(Matrix4x4) ) { + EndZoomArea(originalMatrix); + //set original back + canvasRect = originalCanvasRect; + } + + DrawMinimap(minimapRect); + StartBreadCrumbNavigation(rootGraph); + HandlePostNodesGraphEvents(currentGraph, mousePosInCanvas); + ShowToolbar(currentGraph); + ShowPanels(currentGraph, mousePosInCanvas); + AcceptDrops(currentGraph, mousePosInCanvas); + ShowPlaymodeGUI(); + // ShowConsoleLog(); + + //dirty? + if ( willDirty ) { + willDirty = false; + willRepaint = true; + currentGraph.SelfSerialize(); + UndoUtility.SetDirty(currentGraph); + if ( targetOwner != null && targetOwner.graphIsBound ) { + UndoUtility.SetDirty(targetOwner); + } + } + + //repaint? + if ( willRepaint || rootGraph.isRunning /*|| e.type == EventType.MouseMove*/ ) { + Repaint(); + } + + //reset flags + if ( e.type == EventType.Repaint ) { + fullDrawPass = false; + willRepaint = false; + } + + //hack for quick popups + if ( OnDoPopup != null ) { + var temp = OnDoPopup; + OnDoPopup = null; + QuickPopup.Show(temp); + } + + //PostGUI + GraphEditorUtility.InvokePostGUI(); + //closure + Styles.Draw(canvasRect, StyleSheet.canvasBorders); + GUI.color = Color.white; + GUI.backgroundColor = Color.white; + } + + ///---------------------------------------------------------------------------------------------- + + //Check that all is ok to continue with GUI + bool CheckSumOK() { + + if ( EditorApplication.isCompiling && !Application.isPlaying ) { + ShowNotification(new GUIContent("...Compiling Please Wait...")); + willRepaint = true; + return false; + } + + //get the graph from the GraphOwner if one is set + if ( targetOwner != null ) { + rootGraph = targetOwner.graph; + if ( EditorUtility.IsPersistent(targetOwner) && targetOwner.graphIsBound ) { + ShowNotification(new GUIContent("Bound Graphs on prefabs can only be edited by opening the prefab in the prefab editor.")); + var btnRect = new Rect(0, 0, 200, 50); + btnRect.center = new Vector2(canvasRect.width / 2, TOP_MARGIN + 70); + if ( GUI.Button(btnRect, "Open Prefab") ) { + AssetDatabase.OpenAsset(targetOwner); + } + return false; + } + } + + if ( rootGraph == null ) { + ShowEmptyGraphGUI(); + return false; + } + + //set the currently viewing graph by getting the current child graph from the root graph recursively + var curr = GetCurrentGraph(rootGraph); + if ( !ReferenceEquals(curr, currentGraph) ) { + currentGraph = curr; + OnCurrentGraphChanged(); + } + + if ( currentGraph == null || ReferenceEquals(currentGraph, null) ) { + return false; + } + + if ( currentGraph.serializationHalted ) { + ShowNotification(new GUIContent("Due to last deserialization attempt failure, this graph is protected from changes.\nAny change you make is not saved until the graph has deserialized successfully.\nPlease try restarting Unity to attempt deserialization again.\nIf you think this is a bug, please contact support.")); + } + + return true; + } + + + ///---------------------------------------------------------------------------------------------- + + //Recursively get the currenlty showing nested graph starting from the root + static Graph GetCurrentGraph(Graph root) { + if ( root.GetCurrentChildGraph() == null ) { + return root; + } + return GetCurrentGraph(root.GetCurrentChildGraph()); + } + + //Starts a zoom area, returns the scaled container rect + static Rect StartZoomArea(Rect container, float zoomFactor, out Matrix4x4 oldMatrix) { + GUI.EndClip(); + container.y += TAB_HEIGHT; +#if UNITY_6000_0_OR_NEWER + container.y += 3; +#endif + container.width *= 1 / zoomFactor; + container.height *= 1 / zoomFactor; + oldMatrix = GUI.matrix; + var matrix1 = Matrix4x4.TRS(new Vector2(container.x, container.y), Quaternion.identity, Vector3.one); + var matrix2 = Matrix4x4.Scale(new Vector3(zoomFactor, zoomFactor, 1f)); + GUI.matrix = matrix1 * matrix2 * matrix1.inverse * GUI.matrix; + return container; + } + + //Ends the zoom area + static void EndZoomArea(Matrix4x4 oldMatrix) { + GUI.matrix = oldMatrix; + var recover = new Rect(0, TAB_HEIGHT, screenWidth, screenHeight); +#if UNITY_6000_0_OR_NEWER + recover.y += 3; +#endif + GUI.BeginClip(recover); + } + + //This is called while within Begin/End windows + static void ShowNodesGUI(Graph graph, Rect drawCanvas, bool fullDrawPass, Vector2 canvasMousePos, float zoomFactor) { + + //ensure IDs are updated. Must do on seperate iteration before gui + //FIXME: while it's not expensive, it's still an extra iteration -> move elsewhere? + if ( Event.current.type == EventType.Layout ) { + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + if ( graph.allNodes[i].ID != i ) { + graph.UpdateNodeIDs(true); + break; + } + } + } + + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + Node.ShowNodeGUI(graph.allNodes[i], drawCanvas, fullDrawPass, canvasMousePos, zoomFactor); + } + + if ( graph.primeNode != null ) { + GUI.Box(new Rect(graph.primeNode.rect.x, graph.primeNode.rect.y - 20, graph.primeNode.rect.width, 20), "START", StyleSheet.box); + } + } + + ///Translate the graph to focus selection + public static void FocusSelection() { + if ( GraphEditorUtility.activeElements != null && GraphEditorUtility.activeElements.Count > 0 ) { + FocusPosition(GetNodeBounds(GraphEditorUtility.activeElements.Cast().ToList()).center); + return; + } + if ( GraphEditorUtility.activeElement != null ) { + FocusElement(GraphEditorUtility.activeElement); + return; + } + if ( currentGraph.allNodes.Count > 0 ) { + FocusPosition(GetNodeBounds(currentGraph.allNodes).center); + return; + } + FocusPosition(viewCanvasCenter); + } + + ///Ping element + public static void PingElement(IGraphElement element) { + if ( element is Node ) { PingRect(( element as Node ).rect); } + if ( element is Connection ) { PingRect(( element as Connection ).GetMidRect()); } + } + + ///Translate the graph to the center of target element (node, connection) + public static void FocusElement(IGraphElement element, bool alsoSelect = false) { + if ( element is Node ) { FocusNode((Node)element, alsoSelect); } + if ( element is Connection ) { FocusConnection((Connection)element, alsoSelect); } + } + + ///Translate the graph to the center of the target node + public static void FocusNode(Node node, bool alsoSelect = false) { + if ( currentGraph == node.graph ) { + FocusPosition(node.rect.center); + PingRect(node.rect); + if ( alsoSelect ) { GraphEditorUtility.activeElement = node; } + } + } + + ///Translate the graph to the center of the target connection + public static void FocusConnection(Connection connection, bool alsoSelect = false) { + if ( currentGraph == connection.sourceNode.graph ) { + FocusPosition(connection.GetMidRect().center); + PingRect(connection.GetMidRect()); + if ( alsoSelect ) { GraphEditorUtility.activeElement = connection; } + } + } + + ///Translate the graph to to center of the target pos + public static void FocusPosition(Vector2 targetPos, bool smooth = true) { + if ( smooth ) { + smoothPan = -targetPos; + smoothPan += new Vector2(viewRect.width / 2, viewRect.height / 2); + smoothPan *= zoomFactor; + } else { + pan = -targetPos; + pan += new Vector2(viewRect.width / 2, viewRect.height / 2); + pan *= zoomFactor; + smoothPan = null; + smoothZoomFactor = null; + } + } + + ///Ping rect + public static void PingRect(Rect rect) { + pingValue = 1; + pingRect = rect; + } + + ///Refresh full draw pass flag + public static void FullDrawPass() { + fullDrawPass = true; + } + + ///Zoom with center position + static void ZoomAt(Vector2 center, float delta) { + if ( zoomFactor == 1 && delta > 0 ) return; + var pinPoint = ( center - pan ) / zoomFactor; + var newZ = zoomFactor; + newZ += delta; + newZ = Mathf.Clamp(newZ, ZOOM_MIN, ZOOM_MAX); + smoothZoomFactor = newZ; + + var a = ( pinPoint * newZ ) + pan; + var b = center; + var diff = b - a; + smoothPan = pan + diff; + } + + //Handles D&D operations + static void AcceptDrops(Graph graph, Vector2 canvasMousePos) { + if ( GraphEditorUtility.allowClick ) { + if ( DragAndDrop.objectReferences != null && DragAndDrop.objectReferences.Length == 1 ) { + if ( e.type == EventType.DragUpdated ) { + DragAndDrop.visualMode = DragAndDropVisualMode.Link; + } + if ( e.type == EventType.DragPerform ) { + var value = DragAndDrop.objectReferences[0]; + DragAndDrop.AcceptDrag(); + graph.CallbackOnDropAccepted(value, canvasMousePos); + } + } + } + } + + ///Gets the bound rect for the nodes + static Rect GetNodeBounds(List nodes) { + if ( nodes == null || nodes.Count == 0 ) { + return default(Rect); + } + + var arr = new Rect[nodes.Count]; + for ( var i = 0; i < nodes.Count; i++ ) { + arr[i] = nodes[i].rect; + } + return RectUtils.GetBoundRect(arr); + } + + //Do graphical multi selection box for nodes + static void DoCanvasRectSelection() { + + if ( GraphEditorUtility.allowClick && e.type == EventType.MouseDown && e.button == 0 && !e.alt && !e.shift && canvasRect.Contains(CanvasToView(e.mousePosition)) ) { + if ( e.clickCount == 1 ) { + GraphEditorUtility.activeElement = null; + selectionStartPos = e.mousePosition; + isMultiSelecting = true; + e.Use(); + } + } + + if ( isMultiSelecting && e.rawType == EventType.MouseUp ) { + var rect = RectUtils.GetBoundRect(selectionStartPos, e.mousePosition); + var overlapedNodes = currentGraph.allNodes.Where(n => rect.Overlaps(n.rect) && !n.isHidden).ToList(); + isMultiSelecting = false; + if ( e.control && rect.width > 50 && rect.height > 50 ) { + UndoUtility.RecordObjectComplete(currentGraph, "Create Group"); + if ( currentGraph.canvasGroups == null ) { currentGraph.canvasGroups = new List(); } + currentGraph.canvasGroups.Add(new CanvasGroup(rect, "...")); + UndoUtility.SetDirty(currentGraph); + } else { + if ( overlapedNodes.Count > 0 ) { + GraphEditorUtility.activeElements = overlapedNodes.Cast().ToList(); + e.Use(); + } + } + } + + if ( isMultiSelecting ) { + var rect = RectUtils.GetBoundRect(selectionStartPos, e.mousePosition); + if ( rect.width > 5 && rect.height > 5 ) { + GUI.color = new Color(0.5f, 0.5f, 1, 0.3f); + Styles.Draw(rect, StyleSheet.box); + for ( var i = 0; i < currentGraph.allNodes.Count; i++ ) { + var node = currentGraph.allNodes[i]; + if ( rect.Overlaps(node.rect) && !node.isHidden ) { + var highlightRect = node.rect; + Styles.Draw(highlightRect, StyleSheet.windowHighlight); + } + } + if ( rect.width > 50 && rect.height > 50 ) { + GUI.color = new Color(1, 1, 1, e.control ? 0.6f : 0.15f); + GUI.Label(new Rect(e.mousePosition.x + 16, e.mousePosition.y, 120, 22), "+ control for group", StyleSheet.labelOnCanvas); + } + } + } + + GUI.color = Color.white; + } + + + + //Draw a grid + static void DrawGrid(Rect container, Vector2 offset, float zoomFactor) { + if ( !Prefs.showGrid ) { return; } + if ( Event.current.type != EventType.Repaint ) { return; } + + Handles.color = Color.black.WithAlpha(0.15f); + + var drawGridSize = zoomFactor > 0.5f ? GRID_SIZE : GRID_SIZE * 5; + var step = drawGridSize * zoomFactor; + + var xDiff = offset.x % step; + var xStart = container.xMin + xDiff; + var xEnd = container.xMax; + for ( var i = xStart; i < xEnd; i += step ) { + if ( i > container.xMin ) { //this avoids one step being drawn before x min on negative mod + Handles.DrawLine(new Vector3(i, container.yMin, 0), new Vector3(i, container.yMax, 0)); + } + } + + var yDiff = offset.y % step; + var yStart = container.yMin + yDiff; + var yEnd = container.yMax; + for ( var i = yStart; i < yEnd; i += step ) { + if ( i > container.yMin ) { //this avoids one step being drawn before y min on negative mod + Handles.DrawLine(new Vector3(container.xMin, i, 0), new Vector3(container.xMax, i, 0)); + } + } + + Handles.color = Color.white; + } + + + //This is the hierarchy shown at top left. Recusrsively show the nested path + static void StartBreadCrumbNavigation(Graph root) { + GUILayout.BeginArea(Rect.MinMaxRect(canvasRect.xMin + 15, canvasRect.yMin + 5, canvasRect.xMax, canvasRect.yMax)); + DoBreadCrumbNavigationStep(root); + GUILayout.EndArea(); + } + + static void DoBreadCrumbNavigationStep(Graph root) { + if ( root == null ) { return; } + //if something selected the inspector panel shows on top of the breadcrub. If external inspector active it doesnt matter, so draw anyway. + if ( GraphEditorUtility.activeElement != null && !Prefs.useExternalInspector ) { return; } + + var resultInfo = EditorUtility.IsPersistent(root) ? "Asset Reference" : ( Application.isPlaying ? "Instance" : "Bound" ); + if ( targetOwner != null && EditorUtility.IsPersistent(targetOwner) ) { resultInfo += " | Prefab Asset"; } + var graphInfo = string.Format("({0})", resultInfo); + + GUI.color = Color.white.WithAlpha(0.5f); + + GUILayout.BeginVertical(); + var childGraph = root.GetCurrentChildGraph(); + if ( childGraph == null ) { + + if ( root.agent == null && root.blackboard == null ) { + GUILayout.Label(string.Format("{0} {1}", root.name, graphInfo), StyleSheet.labelOnCanvas); + } else { + var agentInfo = root.agent != null ? "@" + root.agent.gameObject.name : "No Agent"; + GUILayout.Label(string.Format("{0} {1}\n{2}", root.name, graphInfo, agentInfo), StyleSheet.labelOnCanvas); + } + + } else { + + GUILayout.BeginHorizontal(); + GUILayout.Label("⤴ " + root.name, GUI.skin.button); + var lastRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(lastRect, MouseCursor.Link); + if ( e.type == EventType.MouseUp && lastRect.Contains(Event.current.mousePosition) ) { + root.SetCurrentChildGraphAssignable(null); + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + DoBreadCrumbNavigationStep(childGraph); + } + + GUILayout.EndVertical(); + GUI.color = Color.white; + } + + + ///Canvas groups + static void DoCanvasGroups() { // TODO: rewrite... + + if ( currentGraph.canvasGroups == null ) { + return; + } + + for ( var i = 0; i < currentGraph.canvasGroups.Count; i++ ) { + var group = currentGraph.canvasGroups[i]; + var headerRect = new Rect(group.rect.x, group.rect.y, group.rect.width, 25); + var autoRect = new Rect(headerRect.xMax - 48, headerRect.y + 1, 68, headerRect.height); + var scaleRectBR = new Rect(group.rect.xMax - 20, group.rect.yMax - 20, 20, 20); + var scaleRectTL = new Rect(group.rect.x, headerRect.yMax, 20, 20); + + GUI.color = EditorGUIUtility.isProSkin ? new Color(1, 1, 1, 0.4f) : new Color(0.5f, 0.5f, 0.5f, 0.3f); + Styles.Draw(group.rect, StyleSheet.editorPanel); + + if ( group.color != default(Color) ) { + GUI.color = group.color; + GUI.DrawTexture(group.rect.ExpandBy(2, -27, 2, 0), EditorGUIUtility.whiteTexture); + } + + GUI.color = Color.white; + + if ( group.editState != CanvasGroup.EditState.RenamingTitle ) { + var size = StyleSheet.canvasGroupHeader.fontSize / zoomFactor; + var name = string.Format("{1}", size, group.name); + GUI.Label(headerRect, name, StyleSheet.canvasGroupHeader); + + EditorGUIUtility.AddCursorRect(headerRect, group.editState == CanvasGroup.EditState.RenamingTitle ? MouseCursor.Text : MouseCursor.Link); + EditorGUIUtility.AddCursorRect(scaleRectBR, MouseCursor.ResizeUpLeft); + EditorGUIUtility.AddCursorRect(scaleRectTL, MouseCursor.ResizeUpLeft); + + GUI.color = GUI.color.WithAlpha(0.25f); + var newAutoValue = GUI.Toggle(autoRect, group.autoGroup, "Auto"); + if ( newAutoValue != group.autoGroup ) { + UndoUtility.RecordObject(currentGraph, "AutoGroup"); + group.autoGroup = newAutoValue; + group.GatherAdjustAndFlushContainedNodes(currentGraph); + UndoUtility.SetDirty(currentGraph); + } + GUI.color = Color.white; + } + + if ( !string.IsNullOrEmpty(group.notes) ) { + GUI.color = group.color.grayscale > 0.6f ? Color.black : Color.white; + var notesRect = group.rect.ExpandBy(-5, -35, -5, -5); + if ( group.editState == CanvasGroup.EditState.EditingComments ) { + GUI.SetNextControlName("GroupComments" + i); + group.notes = GUI.TextArea(notesRect, group.notes, group.autoGroup ? Styles.wrapLabel : Styles.topLeftLabel); + GUI.FocusControl("GroupComments" + i); + } else { + GUI.Label(notesRect, group.notes, group.autoGroup ? Styles.wrapLabel : Styles.topLeftLabel); + } + GUI.color = Color.white; + } + + if ( group.editState == CanvasGroup.EditState.RenamingTitle ) { + GUI.SetNextControlName("GroupRename" + i); + group.name = EditorGUI.TextField(headerRect, group.name, StyleSheet.canvasGroupHeader); + GUI.FocusControl("GroupRename" + i); + if ( e.keyCode == KeyCode.Return || ( e.type == EventType.MouseDown && !headerRect.Contains(e.mousePosition) ) ) { + group.editState = CanvasGroup.EditState.None; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + } + } + + if ( group.editState == CanvasGroup.EditState.EditingComments && e.type == EventType.MouseDown && !group.rect.Contains(e.mousePosition) ) { + group.editState = CanvasGroup.EditState.None; + } + + if ( e.type == EventType.MouseDown && GraphEditorUtility.allowClick ) { + + if ( headerRect.Contains(e.mousePosition) ) { + + UndoUtility.RecordObjectComplete(currentGraph, "Move Canvas Group"); + + //calc group nodes + tempCanvasGroupNodes = currentGraph.allNodes.Where(n => group.rect.Encapsulates(n.rect)).ToArray(); + tempCanvasGroupGroups = currentGraph.canvasGroups.Where(c => group.rect.Encapsulates(c.rect)).ToArray(); + + if ( e.button == 1 ) { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Rename"), false, () => { group.editState = CanvasGroup.EditState.RenamingTitle; }); + menu.AddItem(new GUIContent("Edit Color"), false, () => { DoPopup(() => { group.color = EditorGUILayout.ColorField(group.color); }); }); + menu.AddItem(new GUIContent("Make Notes"), false, () => + { + group.editState = CanvasGroup.EditState.EditingComments; + if ( string.IsNullOrEmpty(group.notes) ) { group.notes = "..."; } + if ( group.color == default(Color) ) { group.color = CanvasGroup.DEFAULT_NOTES_COLOR; } + }); + menu.AddItem(new GUIContent("Delete"), false, () => { currentGraph.canvasGroups.Remove(group); }); + GraphEditorUtility.PostGUI += () => { menu.ShowAsContext(); }; + } else if ( e.button == 0 ) { + group.editState = CanvasGroup.EditState.Dragging; + if ( e.clickCount == 2 ) { + group.editState = CanvasGroup.EditState.RenamingTitle; + GUI.FocusControl("GroupRename" + i); + } + } + + UndoUtility.SetDirty(currentGraph); + e.Use(); + } + + if ( e.button == 0 ) { + UndoUtility.RecordObjectComplete(currentGraph, "Scale Canvas Group"); + if ( scaleRectBR.Contains(e.mousePosition) ) { + group.editState = CanvasGroup.EditState.ScalingBR; + UndoUtility.RecordObjectComplete(currentGraph, "Scale Canvas Group"); + UndoUtility.SetDirty(currentGraph); + e.Use(); + } + if ( scaleRectTL.Contains(e.mousePosition) ) { + group.editState = CanvasGroup.EditState.ScalingTL; + UndoUtility.RecordObjectComplete(currentGraph, "Scale Canvas Group"); + UndoUtility.SetDirty(currentGraph); + e.Use(); + } + } + } + + if ( e.type == EventType.MouseDrag ) { + + if ( group.editState == CanvasGroup.EditState.Dragging ) { + + group.rect.position += e.delta; + + if ( !e.shift ) { + for ( var j = 0; j < tempCanvasGroupNodes.Length; j++ ) { + tempCanvasGroupNodes[j].position += e.delta; + } + + for ( var j = 0; j < tempCanvasGroupGroups.Length; j++ ) { + tempCanvasGroupGroups[j].rect.position += e.delta; + } + } + } + + if ( group.editState == CanvasGroup.EditState.ScalingBR ) { + group.rect.xMax = Mathf.Max(e.mousePosition.x + 5, group.rect.xMin + 100); + group.rect.yMax = Mathf.Max(e.mousePosition.y + 5, group.rect.yMin + 100); + } + if ( group.editState == CanvasGroup.EditState.ScalingTL ) { + group.rect.xMin = Mathf.Min(e.mousePosition.x - 5, group.rect.xMax - 100); + group.rect.yMin = Mathf.Min(e.mousePosition.y - 30, group.rect.yMax - 100); + } + } + + if ( e.rawType == EventType.MouseUp && group.editState != CanvasGroup.EditState.RenamingTitle ) { + if ( group.editState == CanvasGroup.EditState.Dragging ) { + foreach ( var node in group.GatherContainedNodes(currentGraph) ) { + node.TrySortConnectionsByRelativePosition(); + } + group.FlushContainedNodes(); + } + //sort groups so that smaller ones show on top of bigger ones + if ( group.editState != CanvasGroup.EditState.None ) { + currentGraph.canvasGroups = currentGraph.canvasGroups.OrderBy(g => -( g.rect.width * g.rect.height )).ToList(); + } + group.editState = CanvasGroup.EditState.None; + tempCanvasGroupGroups = null; + tempCanvasGroupNodes = null; + } + } + } + + //Snap all nodes either to grid if option enabled + static void SnapNodesToGrid(Graph graph) { + if ( Prefs.snapToGrid ) { + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + var node = graph.allNodes[i]; + var pos = node.position; + pos.x = Mathf.Round(pos.x / GRID_SIZE) * GRID_SIZE; + pos.y = Mathf.Round(pos.y / GRID_SIZE) * GRID_SIZE; + node.position = pos; + } + + for ( var i = 0; i < graph.canvasGroups.Count; i++ ) { + var group = graph.canvasGroups[i]; + var rect = group.rect; + rect.x = Mathf.Round(rect.x / GRID_SIZE) * GRID_SIZE; + rect.y = Mathf.Round(rect.y / GRID_SIZE) * GRID_SIZE; + group.rect = rect; + } + } + } + + //before nodes for handling events + static void HandleMinimapEvents(Rect container) { + + if ( !GraphEditorUtility.allowClick ) { return; } + + var resizeRect = new Rect(container.x, container.y, 6, 6); + EditorGUIUtility.AddCursorRect(resizeRect, MouseCursor.ResizeUpLeft); + if ( e.type == EventType.MouseDown && e.button == 0 && resizeRect.Contains(e.mousePosition) ) { + isResizingMinimap = true; + e.Use(); + } + if ( e.rawType == EventType.MouseUp ) { + isResizingMinimap = false; + } + if ( isResizingMinimap && e.type == EventType.MouseDrag ) { + Prefs.minimapSize -= e.delta.y; + e.Use(); + } + + if ( Prefs.minimapSize != Prefs.MINIMAP_MIN_SIZE ) { + EditorGUIUtility.AddCursorRect(container, MouseCursor.MoveArrow); + if ( e.type == EventType.MouseDown && e.button == 0 && container.Contains(e.mousePosition) ) { + var finalBound = ResolveMinimapBoundRect(currentGraph, viewRect); + var norm = Rect.PointToNormalized(container, e.mousePosition); + var pos = Rect.NormalizedToPoint(finalBound, norm); + FocusPosition(pos); + isDraggingMinimap = true; + e.Use(); + } + if ( e.rawType == EventType.MouseUp ) { + isDraggingMinimap = false; + } + if ( isDraggingMinimap && e.type == EventType.MouseDrag ) { + var finalBound = ResolveMinimapBoundRect(currentGraph, viewRect); + var norm = Rect.PointToNormalized(container, e.mousePosition); + var pos = Rect.NormalizedToPoint(finalBound, norm); + FocusPosition(pos); + e.Use(); + } + } + } + + ///after nodes, a cool minimap + public static void DrawMinimap(Rect container) { + + GUI.color = Colors.Grey(0.5f).WithAlpha(0.85f); + Styles.Draw(container, StyleSheet.windowShadow); + GUI.Box(container, currentGraph.allNodes.Count > 0 ? string.Empty : "Minimap", StyleSheet.box); + + if ( Prefs.minimapSize != Prefs.MINIMAP_MIN_SIZE ) { + + var finalBound = ResolveMinimapBoundRect(currentGraph, viewRect); + var lensRect = viewRect.TransformSpace(finalBound, container); + GUI.color = new Color(1, 1, 1, 0.8f); + Styles.Draw(lensRect, StyleSheet.box); + GUI.color = Color.white; + finalBound = finalBound.ExpandBy(25); + + //repaint only + if ( Event.current.type == EventType.Repaint ) { + + //groups + if ( currentGraph.canvasGroups != null ) { + for ( var i = 0; i < currentGraph.canvasGroups.Count; i++ ) { + var group = currentGraph.canvasGroups[i]; + var blipRect = group.rect.TransformSpace(finalBound, container); + var blipHeaderRect = Rect.MinMaxRect(blipRect.xMin, blipRect.yMin, blipRect.xMax, blipRect.yMin + 2); + var color = group.color != default(Color) ? group.color : Color.gray; + color.a = 0.5f; + GUI.color = color; + GUI.DrawTexture(blipRect, Texture2D.whiteTexture); + GUI.DrawTexture(blipHeaderRect, Texture2D.whiteTexture); + GUI.color = Color.white; + } + } + + //ping + if ( pingValue >= 0 ) { + GUI.color = Color.white.WithAlpha(pingValue); + var pingBlipRect = pingRect.TransformSpace(finalBound, container); + GUI.DrawTexture(pingBlipRect.ExpandBy(2), Texture2D.whiteTexture); + GUI.color = Color.white; + } + + + if ( currentGraph.allNodes != null ) { + + //connections + for ( var i = 0; i < currentGraph.allNodes.Count; i++ ) { + for ( var j = 0; j < currentGraph.allNodes[i].outConnections.Count; j++ ) { + var connection = currentGraph.allNodes[i].outConnections[j]; + if ( connection.targetNode.isHidden ) { continue; } + var snp = connection.sourceNode.rect.center.TransformSpace(finalBound, container); + var tnp = connection.targetNode.rect.center.TransformSpace(finalBound, container); + var sp = connection.startRect.center.TransformSpace(finalBound, container); + var tp = connection.endRect.center.TransformSpace(finalBound, container); + Handles.color = Application.isPlaying ? StyleSheet.GetStatusColor(connection.status) : Colors.Grey(0.35f); + Handles.DrawAAPolyLine(snp, sp, tp, tnp); + Handles.color = Color.white; + } + } + + //nodes + for ( var i = 0; i < currentGraph.allNodes.Count; i++ ) { + var node = currentGraph.allNodes[i]; + if ( node.isHidden ) { continue; } + var blipRect = node.rect.TransformSpace(finalBound, container); + + if ( Application.isPlaying && node.status != Status.Resting ) { + GUI.color = StyleSheet.GetStatusColor(node.status); + GUI.DrawTexture(blipRect.ExpandBy(2), Texture2D.whiteTexture); + } + + if ( GraphEditorUtility.activeElement == node || GraphEditorUtility.activeElements.Contains(node) ) { + GUI.color = Color.white; + GUI.DrawTexture(blipRect.ExpandBy(2), Texture2D.whiteTexture); + } + + GUI.color = node.nodeColor != default(Color) ? node.nodeColor : Color.grey; + GUI.DrawTexture(blipRect, Texture2D.whiteTexture); + GUI.color = Color.white; + } + } + } + } + + var resizeRect = new Rect(container.x, container.y, 6, 6); + GUI.Box(resizeRect, string.Empty, StyleSheet.scaleArrowTL); + GUI.color = Color.white; + } + + //resolves the bounds used in the minimap + static Rect ResolveMinimapBoundRect(Graph graph, Rect container) { + + var arr1 = new Rect[graph.allNodes.Count]; + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + arr1[i] = graph.allNodes[i].rect; + } + + var nBounds = RectUtils.GetBoundRect(arr1); + var finalBound = nBounds; + + if ( graph.canvasGroups != null && graph.canvasGroups.Count > 0 ) { + var arr2 = new Rect[graph.canvasGroups.Count]; + for ( var i = 0; i < graph.canvasGroups.Count; i++ ) { + arr2[i] = graph.canvasGroups[i].rect; + } + var gBounds = RectUtils.GetBoundRect(arr2); + finalBound = RectUtils.GetBoundRect(nBounds, gBounds); + } + + finalBound = RectUtils.GetBoundRect(finalBound, container); + return finalBound; + } + + // + void DrawPings() { + if ( pingValue > 0 ) { + GUI.color = Color.white.WithAlpha(pingValue); + Styles.Draw(pingRect, Styles.highlightBox); + GUI.color = Color.white; + } + } + + //Playmode gui + void ShowPlaymodeGUI() { + if ( !Application.isPlaying || targetOwner == null ) { return; } + + var bWidth = 96; + var bHeight = 22; + +#if !UNITY_2019_3_OR_NEWER // O.o + bWidth = 98; + bHeight = 25; +#endif + + var buttonsRect = new Rect(0, 0, bWidth, 0); + buttonsRect.center = new Vector2(canvasRect.width / 2, 0); + buttonsRect.yMax = canvasRect.yMax - 5; + buttonsRect.yMin = canvasRect.yMax - 5 - bHeight; + + //prevent click through to nodes + GraphEditorUtility.allowClick &= !buttonsRect.Contains(Event.current.mousePosition); + + GUI.color = Colors.Grey(0.2f); + GUI.DrawTexture(buttonsRect.ExpandBy(5), Texture2D.whiteTexture); + var labelRect = Rect.MinMaxRect(buttonsRect.xMin - 20, buttonsRect.yMin - 40, buttonsRect.xMax + 20, buttonsRect.yMin - 6); + var runLabelRoot = string.Format("Runtime: {0}", targetOwner.elapsedTime.ToString("0.00")); + var runLabelCurrent = string.Format("({0})", currentGraph.elapsedTime.ToString("0.00")); + var runLabelFinal = rootGraph != currentGraph ? runLabelCurrent + '\n' + runLabelRoot : runLabelRoot; + GUI.Label(labelRect, runLabelFinal, Styles.bottomCenterLabel); + + GUI.color = Color.white; + + var buttonWidth = buttonsRect.width / 3f; + var playRect = Rect.MinMaxRect(buttonsRect.xMin, buttonsRect.yMin, buttonsRect.xMin + buttonWidth, buttonsRect.yMax); + var pauseRect = Rect.MinMaxRect(playRect.xMax, buttonsRect.yMin, playRect.xMax + buttonWidth, buttonsRect.yMax); + var stepRect = Rect.MinMaxRect(pauseRect.xMax, buttonsRect.yMin, pauseRect.xMax + buttonWidth, buttonsRect.yMax); + + GUI.contentColor = EditorGUIUtility.isProSkin ? Color.white : Colors.Grey(0.3f); + GUI.color = Colors.Grey(targetOwner.isRunning ? 1f : 0.7f); + if ( GUI.Button(playRect, Icons.playIcon, Styles.buttonLeft) ) { + if ( targetOwner.isRunning ) { targetOwner.StopBehaviour(); } else { targetOwner.StartBehaviour(); } + Event.current.Use(); + } + + GUI.color = Colors.Grey(targetOwner.isPaused ? 1f : 0.7f); + if ( GUI.Button(pauseRect, Icons.pauseIcon, Styles.buttonMid) ) { + if ( targetOwner.isPaused ) { targetOwner.StartBehaviour(); } else { targetOwner.PauseBehaviour(); } + Event.current.Use(); + } + + GUI.color = Colors.Grey(0.7f); + if ( GUI.Button(stepRect, Icons.stepIcon, Styles.buttonRight) ) { + targetOwner.PauseBehaviour(); targetOwner.UpdateBehaviour(); + Event.current.Use(); + } + GUI.contentColor = Color.white; + GUI.color = Color.white; + } + + //an idea but it's taking up space i dont like + void ShowConsoleLog() { + var rect = Rect.MinMaxRect(canvasRect.xMin + 2, canvasRect.yMax + 5, canvasRect.xMax, canvasRect.yMax + 20); + var msg = GraphConsole.GetLastMessageForGraph(currentGraph); + if ( msg.IsValid() ) { + EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link); + if ( GUI.Button(rect, GraphConsole.GetFormatedGUIContentForMessage(msg), StyleSheet.labelOnCanvas) ) { + GraphConsole.ShowWindow(); + } + } + } + + //this is shown when root graph is null + //TODO: Add something like a menu to create graphs from here? + void ShowEmptyGraphGUI() { + if ( targetOwner != null ) { + var text = string.Format("The selected {0} does not have a {1} assigned.\n Please create or assign a new one in its inspector.", targetOwner.GetType().Name, targetOwner.graphType.Name); + ShowNotification(new GUIContent(text)); + return; + } + ShowNotification(new GUIContent("Please select a GraphOwner GameObject or a Graph Asset.")); + if ( Event.current.type == EventType.MouseDown && Event.current.clickCount == 2 && Event.current.button == 0 ) { + current.maximized = !current.maximized; + Event.current.Use(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs.meta new file mode 100644 index 0000000..3b98e3a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphEditor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fdbc9f085f0a9d34caa55b88aeaf67db +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs new file mode 100644 index 0000000..00bf86e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs @@ -0,0 +1,235 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using ParadoxNotion; +using ParadoxNotion.Design; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + public class GraphExplorer : EditorWindow + { + + const int INDENT_WIDTH = 25; + const int INDENT_START = 1; + + private HierarchyTree.Element lastHoverElement; + private string search; + private Vector2 scrollPos; + private bool willRepaint; + private int indent; + + ///---------------------------------------------------------------------------------------------- + + ///Show the finder window + public static void ShowWindow() { + GetWindow().Show(); + } + + //... + void OnEnable() { + titleContent = new GUIContent("Explorer", StyleSheet.canvasIcon); + + wantsMouseMove = true; + wantsMouseEnterLeaveWindow = true; + Graph.onGraphSerialized -= OnGraphSerialized; + Graph.onGraphSerialized += OnGraphSerialized; + GraphEditor.onCurrentGraphChanged -= GraphChanged; + GraphEditor.onCurrentGraphChanged += GraphChanged; + GraphEditorUtility.onActiveElementChanged -= OnActiveElementChanged; + GraphEditorUtility.onActiveElementChanged += OnActiveElementChanged; + + willRepaint = true; + } + + //... + void OnDisable() { + Graph.onGraphSerialized -= OnGraphSerialized; + GraphEditor.onCurrentGraphChanged -= GraphChanged; + GraphEditorUtility.onActiveElementChanged -= OnActiveElementChanged; + } + + //... + void GraphChanged(Graph graph) { + search = null; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + willRepaint = true; + } + + //... + void OnActiveElementChanged(IGraphElement element) { + willRepaint = true; + } + + //... + void OnGraphSerialized(Graph graph) { + willRepaint = true; + } + + ///---------------------------------------------------------------------------------------------- + + //... + void Update() { + if ( willRepaint ) { + willRepaint = false; + Repaint(); + } + } + + //... + void OnGUI() { + + if ( GraphEditor.current == null || GraphEditor.currentGraph == null ) { + ShowNotification(new GUIContent("No Graph is currently open in the Graph Editor")); + return; + } else { + RemoveNotification(); + } + + EditorGUILayout.HelpBox("A flat meta graph structure including nodes, connections, tasks and parameters. Use this utility window to quickly search, find and jump focus to the related element. Please note that keeping this utility window open, will slow down the graph editor.", MessageType.Info); + + GUILayout.BeginHorizontal(); + GUILayout.Space(5); + GUI.SetNextControlName("SearchToolbar"); + search = EditorUtils.SearchField(search); + Prefs.explorerShowTypeNames = EditorGUILayout.ToggleLeft("Show Type Names", Prefs.explorerShowTypeNames, GUILayout.Width(130)); + GUILayout.EndHorizontal(); + + var graphElement = GraphEditor.currentGraph.GetFlatMetaGraph(); + if ( graphElement == null ) { + return; + } + + EditorUtils.BoldSeparator(); + + GUILayout.Label(string.Format(" ROOT", GraphEditor.currentGraph.name)); + EditorUtils.Separator(); + + ///---------------------------------------------------------------------------------------------- + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, false, false); + indent = INDENT_START; + DoElement(graphElement); + indent = INDENT_START; + EditorGUILayout.EndScrollView(); + ///---------------------------------------------------------------------------------------------- + + if ( Event.current.type == EventType.KeyDown ) { + EditorGUI.FocusTextInControl("SearchToolbar"); + Event.current.Use(); + } + + if ( Event.current.type == EventType.MouseLeaveWindow ) { + willRepaint = true; + } + } + + //... + void DoElement(HierarchyTree.Element element, Rect parentElementRect = default(Rect)) { + + if ( element.children == null ) { return; } + + foreach ( var child in element.children ) { + + var elementRect = default(Rect); + + if ( child.reference == null ) { continue; } + + //Dont show undefined parameters. + //TODO: I dont like this "special case" here + if ( child.reference is BBParameter ) { + var bbPram = (BBParameter)child.reference; + if ( !bbPram.isDefined ) { continue; } + } + + var toString = child.reference.ToString(); + var typeName = child.reference.GetType().FriendlyName(); + var searchText = toString + " " + typeName; + + if ( string.IsNullOrEmpty(search) || StringUtils.SearchMatch(search, searchText) ) { + + if ( EditorGUIUtility.isProSkin ) { GUI.color = Color.black.WithAlpha(indent == 1 ? 0.6f : 0.3f); } + if ( !EditorGUIUtility.isProSkin ) { GUI.color = Color.white.WithAlpha(indent == 1 ? 0.6f : 0.3f); } + GUILayout.BeginHorizontal("box"); + GUI.color = Color.white; + GUILayout.Space(indent * INDENT_WIDTH); + var displayText = string.Format("{0}{1}", toString, Prefs.explorerShowTypeNames ? " (" + typeName + ")" : string.Empty); + GUILayout.Label(string.Format("{0}", displayText)); + GUILayout.EndHorizontal(); + + elementRect = GUILayoutUtility.GetLastRect(); + + EditorGUIUtility.AddCursorRect(elementRect, MouseCursor.Link); + if ( elementRect.Contains(Event.current.mousePosition) ) { + if ( child != lastHoverElement ) { + lastHoverElement = child; + willRepaint = true; + PingElement(child); + } + GUI.color = new Color(0.5f, 0.5f, 1, 0.3f); + GUI.DrawTexture(elementRect, EditorGUIUtility.whiteTexture); + GUI.color = Color.white; + if ( Event.current.type == EventType.MouseDown ) { + FocusElement(child); + Event.current.Use(); + } + } + + if ( GraphEditorUtility.activeElement == child.reference ) { + GUI.color = new Color(0.5f, 0.5f, 1, 0.1f); + GUI.DrawTexture(elementRect, EditorGUIUtility.whiteTexture); + GUI.color = Color.white; + } + } + + indent++; + DoElement(child, elementRect); + indent--; + + if ( elementRect != default(Rect) ) { + var rootOrNotParentHidden = indent == INDENT_START || parentElementRect != default(Rect); + + var lineVer = new Rect(); + lineVer.xMin = elementRect.xMin + ( indent * INDENT_WIDTH ) - ( INDENT_WIDTH / 2 ); + lineVer.width = 2; + lineVer.yMin = parentElementRect.yMax + 6; + lineVer.yMax = elementRect.yMax - ( elementRect.height / 2 ); + + var lineHor = new Rect(); + lineHor.xMin = rootOrNotParentHidden ? lineVer.xMin : ( INDENT_WIDTH / 2 ); + lineHor.xMax = lineVer.xMin + ( INDENT_WIDTH / 2 ); + lineHor.yMin = lineVer.yMax - 2; + lineHor.height = 2; + + GUI.color = Colors.Grey(EditorGUIUtility.isProSkin ? 0.6f : 0.3f); + if ( rootOrNotParentHidden ) { + GUI.DrawTexture(lineVer, Texture2D.whiteTexture); + } + GUI.DrawTexture(lineHor, Texture2D.whiteTexture); + GUI.color = Color.white; + } + + + if ( indent == INDENT_START && string.IsNullOrEmpty(search) ) { + EditorUtils.Separator(); + } + } + } + + ///Ping element. User hover. + void PingElement(HierarchyTree.Element e) { + var element = e.GetFirstParentReferenceOfType(); + EditorApplication.delayCall += () => GraphEditor.PingElement(element); + } + + ///Focus element. This also Pings it. User click. + void FocusElement(HierarchyTree.Element e) { + var element = e.GetFirstParentReferenceOfType(); + EditorApplication.delayCall += () => GraphEditor.FocusElement(element, true); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs.meta new file mode 100644 index 0000000..4d65297 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphExplorer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65dc65ac291cadb498ebe40a737173bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs new file mode 100644 index 0000000..7c612d3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs @@ -0,0 +1,302 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + ///Graph Refactoring + public class GraphRefactor : EditorWindow + { + + //... + public static void ShowWindow() { + GetWindow().Show(); + } + + private Dictionary> recoverablesMap; + private Dictionary recoverableChangesMap; + + private Dictionary> reflectedMap; + private Dictionary reflectedChangesMap; + + private Dictionary> missingParametersMap; + private Dictionary missingParameterChangesMap; + + ///---------------------------------------------------------------------------------------------- + + void Flush() { + recoverablesMap = null; + reflectedChangesMap = null; + recoverablesMap = null; + reflectedChangesMap = null; + missingParametersMap = null; + missingParameterChangesMap = null; + } + + //... + void Gather() { + + GUIUtility.keyboardControl = 0; + GUIUtility.hotControl = 0; + + GatherRecoverables(); + GatherReflected(); + GatherBBParameters(); + } + + //... + void GatherRecoverables() { + recoverablesMap = new Dictionary>(); + recoverableChangesMap = new Dictionary(); + + var graph = GraphEditor.currentGraph; + var metaGraph = graph.GetFlatMetaGraph(); + var recoverables = metaGraph.GetAllChildrenReferencesOfType(); + foreach ( var recoverable in recoverables ) { + if ( !recoverablesMap.TryGetValue(recoverable.missingType, out List collection) ) { + collection = new List(); + recoverablesMap[recoverable.missingType] = collection; + recoverableChangesMap[recoverable.missingType] = recoverable.missingType; + } + collection.Add(recoverable); + } + } + + //... + void GatherReflected() { + reflectedMap = new Dictionary>(); + reflectedChangesMap = new Dictionary(); + var graph = GraphEditor.currentGraph; + JSONSerializer.SerializeAndExecuteNoCycles(typeof(NodeCanvas.Framework.Internal.GraphSource), graph.GetGraphSource(), DoCollect); + } + + //... + void DoCollect(object o, fsData d) { + if ( o is ISerializedReflectedInfo reflect ) { + if ( reflect.AsMemberInfo() == null ) { + if ( !reflectedMap.TryGetValue(reflect.AsString(), out List collection) ) { + collection = new List(); + reflectedMap[reflect.AsString()] = collection; + reflectedChangesMap[reflect.AsString()] = d; + } + collection.Add(reflect); + } + } + } + + //... + void GatherBBParameters() { + missingParametersMap = new Dictionary>(); + missingParameterChangesMap = new Dictionary(); + var graph = GraphEditor.currentGraph; + foreach ( var missingParameter in graph.GetDefinedParameters().Where(p => p.varRef == null && !p.isPresumedDynamic) ) { + var key = string.Format("{0}({1})", missingParameter.name, missingParameter.varType.Name); + if ( !missingParametersMap.TryGetValue(key, out List collection) ) { + collection = new List(); + var fakeParam = new Framework.Internal.BBObjectParameter(missingParameter.varType); + fakeParam.name = missingParameter.name; + fakeParam.bb = missingParameter.bb; + fakeParam.useBlackboard = missingParameter.useBlackboard; + missingParametersMap[key] = collection; + missingParameterChangesMap[key] = fakeParam; + } + collection.Add(missingParameter); + } + } + + ///---------------------------------------------------------------------------------------------- + + //... + void Save() { + + if ( recoverableChangesMap.Count > 0 || reflectedChangesMap.Count > 0 || missingParameterChangesMap.Count > 0 ) { + + if ( recoverableChangesMap.Count > 0 ) { + SaveRecoverables(); + } + if ( reflectedChangesMap.Count > 0 ) { + SaveReflected(); + } + if ( missingParametersMap.Count > 0 ) { + SaveParameters(); + } + + ParadoxNotion.Services.Logger.enabled = false; + GraphEditor.currentGraph.Validate(); + ParadoxNotion.Services.Logger.enabled = true; + GraphEditor.currentGraph.SelfSerialize(); + GraphEditor.currentGraph.SelfDeserialize(); + GraphEditor.currentGraph.Validate(); + + UndoUtility.SetDirty(GraphEditor.currentGraph); + AssetDatabase.SaveAssets(); + Gather(); + } + } + + //... + void SaveRecoverables() { + foreach ( var pair in recoverablesMap ) { + foreach ( var recoverable in pair.Value ) { + recoverable.missingType = recoverableChangesMap[pair.Key]; + } + } + } + + //... + void SaveReflected() { + foreach ( var pair in reflectedMap ) { + foreach ( var reflect in pair.Value ) { + var data = reflectedChangesMap[pair.Key]; + JSONSerializer.TryDeserializeOverwrite(reflect, data.ToString(), null); + } + } + } + + //... + void SaveParameters() { + foreach ( var pair in missingParametersMap ) { + var change = missingParameterChangesMap[pair.Key]; + foreach ( var bbParam in pair.Value ) { + if ( change.useBlackboard ) { + bbParam.name = change.name; + bbParam.SetTargetVariable(change.bb, change.varRef); + } else { + bbParam.name = null; + bbParam.value = change.value; + } + } + } + } + + ///---------------------------------------------------------------------------------------------- + + //... + void OnEnable() { + titleContent = new GUIContent("Refactor", StyleSheet.canvasIcon); + GraphEditor.onCurrentGraphChanged -= OnGraphChanged; + GraphEditor.onCurrentGraphChanged += OnGraphChanged; + } + + //... + void OnDisable() { + GraphEditor.onCurrentGraphChanged -= OnGraphChanged; + Flush(); + } + + void OnGraphChanged(Graph graph) { Flush(); Repaint(); } + + //... + void OnGUI() { + + if ( Application.isPlaying ) { + ShowNotification(new GUIContent("Refactor only works in editor mode. Please exit play mode.")); + return; + } + + if ( GraphEditor.current == null || GraphEditor.currentGraph == null ) { + ShowNotification(new GUIContent("No Graph is currently open in the Graph Editor.")); + return; + } + + RemoveNotification(); + + EditorGUILayout.HelpBox("Batch refactor missing nodes, tasks, parameters, types as well as missing reflection based methods, properties, fields and so on references. Note that changes made here are irreversible. Please proceed with caution.\n\n1) Hit Gather to fetch missing elements from the currently viewing graph in the editor.\n2) Rename elements serialization data to their new name (keep the same format).\n3) Hit Save to commit your changes.", MessageType.Info); + + if ( GUILayout.Button("Gather", GUILayout.Height(30)) ) { Gather(); } + EditorUtils.Separator(); + + if ( recoverablesMap == null || reflectedMap == null || missingParametersMap == null ) { return; } + + EditorUtils.CoolLabel("Recoverables"); + EditorGUI.indentLevel = 1; + DoRecoverables(); + GUILayout.Space(5); + + EditorUtils.CoolLabel("Reflection"); + EditorGUI.indentLevel = 1; + DoReflected(); + GUILayout.Space(5); + + EditorUtils.CoolLabel("Parameters"); + EditorGUI.indentLevel = 1; + DoParameters(); + + if ( recoverableChangesMap.Count > 0 || reflectedChangesMap.Count > 0 || missingParametersMap.Count > 0 ) { + EditorUtils.Separator(); + if ( GUILayout.Button("Save", GUILayout.Height(30)) ) { Save(); } + } else { + EditorUtils.Separator(); + } + } + + //... + void DoRecoverables() { + + if ( recoverablesMap.Count == 0 ) { + GUILayout.Label("No missing recoverable elements found."); + return; + } + + foreach ( var pair in recoverablesMap ) { + var originalName = pair.Key; + GUILayout.Label(string.Format("{0} occurencies: Type '{1}'", pair.Value.Count, originalName)); + GUILayout.Space(5); + var typeName = recoverableChangesMap[originalName]; + typeName = EditorGUILayout.TextField("Type Name", typeName); + recoverableChangesMap[originalName] = typeName; + EditorUtils.Separator(); + } + } + + //... + void DoReflected() { + + if ( reflectedMap.Count == 0 ) { + GUILayout.Label("No missing reflected references found."); + return; + } + + foreach ( var pair in reflectedMap ) { + var information = pair.Key; + GUILayout.Label(string.Format("{0} occurencies: '{1}'", pair.Value.Count, information)); + GUILayout.Space(5); + fsData data = reflectedChangesMap[information]; + var dict = new Dictionary(data.AsDictionary); + foreach ( var dataPair in dict ) { + var value = dataPair.Value.AsString; + var newValue = EditorGUILayout.TextField(dataPair.Key, value); + if ( newValue != value ) { + data.AsDictionary[dataPair.Key] = new fsData(newValue); + } + } + reflectedChangesMap[information] = data; + EditorUtils.Separator(); + } + } + + //... + void DoParameters() { + + if ( missingParametersMap.Count == 0 ) { + GUILayout.Label("No missing BB Parameters found."); + return; + } + + foreach ( var pair in missingParameterChangesMap ) { + BBParameterEditor.ParameterField(pair.Key, pair.Value, GraphEditor.currentGraph); + } + } + + } +} +#endif + diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs.meta new file mode 100644 index 0000000..acad8ef --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/GraphRefactor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ef50a34d2392704796b00a5adc6433a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs new file mode 100644 index 0000000..db542a7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs @@ -0,0 +1,36 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; + +namespace NodeCanvas.Editor +{ + + //Shows a GUI within a popup. The delegate includes the gui calls + public class QuickPopup : PopupWindowContent + { + + private System.Action Call; + private Rect myRect = new Rect(0, 0, 200, 10); + + public static void Show(System.Action Call, Vector2 pos = default(Vector2)) { + var e = Event.current; + pos = pos == default(Vector2) ? new Vector2(e.mousePosition.x, e.mousePosition.y) : pos; + var rect = new Rect(pos.x, pos.y, 0, 0); + PopupWindow.Show(rect, new QuickPopup(Call)); + } + + public QuickPopup(System.Action Call) { this.Call = Call; } + public override Vector2 GetWindowSize() { return new Vector2(myRect.xMin + myRect.xMax, myRect.yMin + myRect.yMax); } + public override void OnGUI(Rect rect) { + GUILayout.BeginVertical("box"); + Call(); + GUILayout.EndVertical(); + if ( Event.current.type == EventType.Repaint ) { + myRect = GUILayoutUtility.GetLastRect(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs.meta new file mode 100644 index 0000000..359b3c8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/QuickPopup.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae03db9ccb96d884baf714b5afcb459a +timeCreated: 1455339554 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs new file mode 100644 index 0000000..45d2171 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs @@ -0,0 +1,173 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Editor +{ + + public class TaskWizardWindow : EditorWindow + { + + enum TaskType { Action, Condition } + TaskType type = TaskType.Action; + + string taskName; + string category; + string description; + string agentType; + string ns; + + public static void ShowWindow() { + var window = ScriptableObject.CreateInstance(typeof(TaskWizardWindow)) as TaskWizardWindow; + window.ShowUtility(); + } + + void OnEnable() { + titleContent = new GUIContent("NC Task Wizard"); + } + + void OnGUI() { + type = (TaskType)EditorGUILayout.EnumPopup("Task Type", type); + taskName = EditorGUILayout.TextField("Task Name", taskName); + ns = EditorGUILayout.TextField("Namespace", ns); + category = EditorGUILayout.TextField("Category(?)", category); + description = EditorGUILayout.TextField("Description(?)", description); + agentType = EditorGUILayout.TextField("Agent Type(?)", agentType); + + if ( GUILayout.Button("CREATE") ) { + + if ( string.IsNullOrEmpty(taskName) ) { + EditorUtility.DisplayDialog("Empty Task Name", "Please give the new task a name", "OK"); + return; + } + + if ( type == TaskType.Action ) { + CreateFile(GetActionTemplate()); + } + + if ( type == TaskType.Condition ) { + CreateFile(GetCoditionTemplate()); + } + + taskName = ""; + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + } + + if ( type == TaskType.Action ) { + GUILayout.Label(GetActionTemplate()); + } + + if ( type == TaskType.Condition ) { + GUILayout.Label(GetCoditionTemplate()); + } + } + + void CreateFile(string template) { + + var path = GetUniquePath(); + + if ( System.IO.File.Exists(path) ) { + if ( !EditorUtility.DisplayDialog("File Exists", "Overwrite file?", "YES", "NO") ) { + return; + } + } + + System.IO.File.WriteAllText(path, template); + UnityEditor.AssetDatabase.Refresh(); + ParadoxNotion.Services.Logger.LogWarning("New Task is placed under: " + path); + } + + string GetUniquePath() { + var path = AssetDatabase.GetAssetPath(Selection.activeObject); + if ( path == "" ) { + path = "Assets"; + } + if ( System.IO.Path.GetExtension(path) != "" ) { + path = path.Replace(System.IO.Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); + } + return AssetDatabase.GenerateUniqueAssetPath(path + "/" + taskName + ".cs"); + } + + string GetActionTemplate() { + return + "using NodeCanvas.Framework;\n" + + "using ParadoxNotion.Design;\n" + + "\n\n" + + "namespace " + ( string.IsNullOrEmpty(ns) ? "NodeCanvas.Tasks.Actions" : ns ) + " {\n\n" + + ( !string.IsNullOrEmpty(category) ? "\t[Category(\"" + category + "\")]\n" : "" ) + + ( !string.IsNullOrEmpty(description) ? "\t[Description(\"" + description + "\")]\n" : "" ) + + "\tpublic class " + taskName + " : ActionTask" + ( !string.IsNullOrEmpty(agentType) ? ( "<" + agentType + ">" ) : "" ) + " {\n\n" + + + "\t\t//Use for initialization. This is called only once in the lifetime of the task.\n" + + "\t\t//Return null if init was successfull. Return an error string otherwise\n" + + "\t\tprotected override string OnInit() {\n" + + "\t\t\treturn null;\n" + + "\t\t}\n\n" + + + "\t\t//This is called once each time the task is enabled.\n" + + "\t\t//Call EndAction() to mark the action as finished, either in success or failure.\n" + + "\t\t//EndAction can be called from anywhere.\n" + + "\t\tprotected override void OnExecute() {\n" + + "\t\t\tEndAction(true);\n" + + "\t\t}\n\n" + + + "\t\t//Called once per frame while the action is active.\n" + + "\t\tprotected override void OnUpdate() {\n" + + "\t\t\t\n" + + "\t\t}\n\n" + + + "\t\t//Called when the task is disabled.\n" + + "\t\tprotected override void OnStop() {\n" + + "\t\t\t\n" + + "\t\t}\n\n" + + + "\t\t//Called when the task is paused.\n" + + "\t\tprotected override void OnPause() {\n" + + "\t\t\t\n" + + "\t\t}\n" + + + "\t}\n" + + "}"; + } + + string GetCoditionTemplate() { + return + "using NodeCanvas.Framework;\n" + + "using ParadoxNotion.Design;\n" + + "\n\n" + + "namespace " + ( string.IsNullOrEmpty(ns) ? "NodeCanvas.Tasks.Conditions" : ns ) + " {\n\n" + + ( !string.IsNullOrEmpty(category) ? "\t[Category(\"" + category + "\")]\n" : "" ) + + ( !string.IsNullOrEmpty(description) ? "\t[Description(\"" + description + "\")]\n" : "" ) + + "\tpublic class " + taskName + " : ConditionTask" + ( !string.IsNullOrEmpty(agentType) ? ( "<" + agentType + ">" ) : "" ) + " {\n\n" + + "\t\t//Use for initialization. This is called only once in the lifetime of the task.\n" + + "\t\t//Return null if init was successfull. Return an error string otherwise\n" + + "\t\tprotected override string OnInit(){\n" + + "\t\t\treturn null;\n" + + "\t\t}\n\n" + + + "\t\t//Called whenever the condition gets enabled.\n" + + "\t\tprotected override void OnEnable() {\n" + + "\t\t\t\n" + + "\t\t}\n\n" + + + "\t\t//Called whenever the condition gets disabled.\n" + + "\t\tprotected override void OnDisable() {\n" + + "\t\t\t\n" + + "\t\t}\n\n" + + + "\t\t//Called once per frame while the condition is active.\n" + + "\t\t//Return whether the condition is success or failure.\n" + + "\t\tprotected override bool OnCheck() {\n" + + "\t\t\treturn true;\n" + + "\t\t}\n" + + + "\t}\n" + + "}"; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs.meta new file mode 100644 index 0000000..3f25f50 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/TaskWizardWindow.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 365421ce437d99142bb89e6f4e42d5e4 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs new file mode 100644 index 0000000..0c21471 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs @@ -0,0 +1,192 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; +using System.Linq; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using ParadoxNotion; +using UnityEngine.Networking; + +namespace NodeCanvas.Editor +{ + + public class WelcomeWindow : EditorWindow + { + + private static System.Type assetType; + private Texture2D header; + private Texture2D docsIcon; + private Texture2D resourcesIcon; + private Texture2D supportIcon; + private Texture2D communityIcon; + + private GraphInfoAttribute att; + private string packageName; + private string docsURL; + private string resourcesURL; + private string forumsURL; + private string discordUrl = "https://discord.gg/97q2Rjh"; + + private string webMessage; + + //... + public static void ShowWindow(System.Type t) { + assetType = t; + var window = CreateInstance(); + window.ShowUtility(); + } + + //... + void OnEnable() { + titleContent = new GUIContent("Welcome"); + if ( assetType == null ) { assetType = GraphEditor.currentGraph?.GetType(); } + if ( assetType == null ) { assetType = ReflectionTools.GetImplementationsOf(typeof(Graph)).Where(x => x.IsDefined(typeof(GraphInfoAttribute), true)).LastOrDefault(); } + att = assetType != null ? assetType.RTGetAttributesRecursive().LastOrDefault() : null; + + packageName = att != null ? att.packageName : "NodeCanvas"; + docsURL = att != null ? att.docsURL : "https://paradoxnotion.com/"; + resourcesURL = att != null ? att.resourcesURL : "https://paradoxnotion.com/"; + forumsURL = att != null ? att.forumsURL : "https://paradoxnotion.com/"; + + header = Resources.Load(string.Format("{0}Header", packageName)) as Texture2D; + docsIcon = Resources.Load("Manual") as Texture2D; + resourcesIcon = Resources.Load("Resources") as Texture2D; + supportIcon = Resources.Load("Support") as Texture2D; + communityIcon = Resources.Load("Community") as Texture2D; + var size = new Vector2(header != null ? header.width : 800, 435); + minSize = size; + maxSize = size; + FetchWebMessageBoard(); + } + + //... + void FetchWebMessageBoard() { + var url = "https://paradoxnotion.com/files/softwaremessageboard.txt"; + var request = UnityWebRequest.Get(url); + var op = request.SendWebRequest(); + op.completed += (x) => + { + webMessage = request.downloadHandler?.text; + if ( !string.IsNullOrEmpty(webMessage) ) { + var result = string.Empty; + var boards = webMessage.Split('|'); + foreach ( var board in boards ) { + var targetPair = board.GetStringWithinOuter('<', '>').Split(':'); + var target = targetPair[0]; + var isAll = target.ToLower() == "all"; + if ( isAll || target.ToLower() == packageName.ToLower() ) { + if ( !isAll ) { + var version = targetPair[1]; + var uptodate = NodeCanvas.Framework.Internal.GraphSource.FRAMEWORK_VERSION == float.Parse(version); + result += uptodate ? "You are up to date on the latest version!" : string.Format("There is a new version available! ( v{0} )", version); + } + var content = board.GetStringWithinOuter('{', '}'); + result += content.Replace("\t", "").TrimEnd(); + } + } + webMessage = result.Trim(); + } + request.Dispose(); + Repaint(); + }; + } + + + //... + void OnGUI() { + + GUI.skin.label.richText = true; + + var headerRect = header != null ? new Rect(0, 0, header.width, header.height) : new Rect(0, 0, maxSize.x, 110); + EditorGUIUtility.AddCursorRect(headerRect, MouseCursor.Link); + if ( GUI.Button(headerRect, string.Empty, GUIStyle.none) ) { + UnityEditor.Help.BrowseURL("https://paradoxnotion.com"); + } + + if ( header != null ) { + GUI.DrawTexture(headerRect, header); + } else { + Styles.Draw(headerRect, Styles.roundedBox); + GUI.Label(headerRect, $"\t\t{packageName}", Styles.leftLabel); + } + + var copyrightText = "© 2014-2025 Paradox Notion. All rights reserved."; + var size = Styles.leftLabel.CalcSize(new GUIContent(copyrightText)); + var copyrightRect = new Rect(92, 69, size.x, size.y); + GUI.color = Color.black.WithAlpha(0.05f); + GUI.DrawTexture(copyrightRect, Texture2D.whiteTexture); + GUI.color = Color.white; + GUI.Label(copyrightRect, copyrightText, Styles.topLeftLabel); + + GUILayout.Space(headerRect.height); + + GUI.Label(new Rect(headerRect.x + 333, headerRect.yMax - 56, 150, 20), $"v{NodeCanvas.Framework.Internal.GraphSource.FRAMEWORK_VERSION}"); + + ///---------------------------------------------------------------------------------------------- + + if ( !string.IsNullOrEmpty(webMessage) ) { + var messageRect = Rect.MinMaxRect(headerRect.xMax - 385, headerRect.yMin + 5, headerRect.xMax - 5, headerRect.yMax - 5); + GUI.color = Color.white.WithAlpha(0.5f); + Styles.Draw(messageRect, Styles.roundedBox); + GUI.color = Color.white; + GUI.Label(messageRect.ExpandBy(-5), $"{webMessage}", Styles.topLeftLabel); + } + + ///---------------------------------------------------------------------------------------------- + + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + GUILayout.BeginVertical(); + + GUILayout.Space(10); + + var titleRect = headerRect; + titleRect.x += 30; + + GUILayout.Label(string.Format("Welcome and thank you for purchasing {0}! Following are a few important links to get you started:", packageName)); + GUILayout.Space(10); + + ///---------------------------------------------------------------------------------------------- + + ShowEntry(docsIcon, "Documentation\nRead thorough documentation and API reference online.", docsURL); + ShowEntry(resourcesIcon, "Resources\nDownload samples, extensions and other resources.", resourcesURL); + ShowEntry(supportIcon, "Support\nJoin the online forums, get support and give feedback.", forumsURL); + ShowEntry(communityIcon, "Community\nJoin the online Discord community.", discordUrl); + + + ///---------------------------------------------------------------------------------------------- + + GUILayout.FlexibleSpace(); + + Prefs.hideWelcomeWindow = EditorGUILayout.ToggleLeft("Don't show again.", Prefs.hideWelcomeWindow); + + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + + GUILayout.Space(15); + } + + //... + void ShowEntry(Texture2D icon, string text, string url) { + GUILayout.BeginHorizontal(Styles.roundedBox); + GUI.backgroundColor = Color.clear; + GUI.contentColor = EditorGUIUtility.isProSkin ? ColorUtils.Grey(0.8f) : Color.black; + if ( GUILayout.Button(icon, GUILayout.Width(50), GUILayout.Height(50)) ) { + UnityEditor.Help.BrowseURL(url); + } + GUI.contentColor = Color.white; + EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); + GUILayout.BeginVertical(); + GUILayout.Space(6); + GUILayout.Label(text); + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + GUILayout.Space(5); + GUI.backgroundColor = Color.white; + GUI.contentColor = Color.white; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs.meta new file mode 100644 index 0000000..47d6369 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/Editor/Windows/WelcomeWindow.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6aecfa7187979fa478b17f8f68523770 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs new file mode 100644 index 0000000..0385d71 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs @@ -0,0 +1,16 @@ +namespace NodeCanvas.Framework +{ + ///Log tags "collection" to use in logger easier + public static class LogTag + { + public const string EDITOR = "Editor"; + public const string EVENT = "Event"; + public const string EXECUTION = "Execution"; + public const string VARIABLE = "Variable"; + public const string BLACKBOARD = "Blackboard"; + public const string GRAPH = "Graph"; + public const string INIT = "Initialization"; + public const string VALIDATION = "Validation"; + public const string SERIALIZATION = "Serialization"; + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs.meta new file mode 100644 index 0000000..ecb762c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/LogTag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d67a1bc6600b104e8fb2e4884f19224 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor.meta new file mode 100644 index 0000000..d6f96f6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: ea2adcb52703b194bbc0243a60f38c4f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers.meta new file mode 100644 index 0000000..4c488bd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 270fb154a6bbbf742aaee7c817ab9202 +folderAsset: yes +timeCreated: 1538846253 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs new file mode 100644 index 0000000..299ef47 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs @@ -0,0 +1,22 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; +using ParadoxNotion; + +namespace NodeCanvas.Editor +{ + + public class BBParameterDrawer : ObjectDrawer + { + public override BBParameter OnGUI(GUIContent content, BBParameter instance) { + var required = fieldInfo.RTIsDefined(true); + var bbOnly = fieldInfo.RTIsDefined(true); + instance = BBParameterEditor.ParameterField(content, instance, bbOnly, required, info); + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs.meta new file mode 100644 index 0000000..63deafe --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BBParameterDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b3d843d29b08165449a965dacaf34c58 +timeCreated: 1514571230 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs new file mode 100644 index 0000000..c838982 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs @@ -0,0 +1,28 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + ///A drawer for BlackboardSource + public class BlackboardSourceDrawer : ObjectDrawer + { + public override BlackboardSource OnGUI(GUIContent content, BlackboardSource instance) { + if ( instance != null ) { + BlackboardEditor.ShowVariables(instance, contextUnityObject); + return instance; + } + + if ( GUILayout.Button("Create Blackboard") ) { + instance = new BlackboardSource(); + } + + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs.meta new file mode 100644 index 0000000..671a2ee --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/BlackboardSourceDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b0b44a30560e86343b94ada38e3431a5 +timeCreated: 1514571230 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs new file mode 100644 index 0000000..401402e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs @@ -0,0 +1,43 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; +using System.Linq; +using ParadoxNotion; + +namespace NodeCanvas.Editor +{ + + ///A drawer for INodeReference which is useful to weak reference nodes from within one another + public class NodeReferenceDrawer : ObjectDrawer + { + public override INodeReference OnGUI(GUIContent content, INodeReference instance) { + //we presume that INodeRefence is serialized in a Node context + if ( instance == null ) { + UnityEditor.EditorGUILayout.LabelField(content.text, "Null NodeReference Instance"); + return instance; + } + var contextNode = context as Node; + if ( contextNode == null || contextNode.graph == null ) { return instance; } + var graph = contextNode.graph; + + var targets = graph.allNodes.Where(x => instance.type.IsAssignableFrom(x.GetType())); + var current = instance.Get(graph); + var newTarget = EditorUtils.Popup(content, current, targets); + if ( newTarget != current ) { + UndoUtility.RecordObject(contextUnityObject, "Set Node Reference"); + instance.Set(newTarget); + foreach ( var callbackAtt in attributes.OfType() ) { + var m = contextNode.GetType().RTGetMethod(callbackAtt.methodName); + if ( m != null ) { m.Invoke(contextNode, null); } + } + UndoUtility.SetDirty(contextUnityObject); + } + + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs.meta new file mode 100644 index 0000000..00e8f47 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/NodeReferenceDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dccd92d70b6aa0a4f82be708397d081b +timeCreated: 1514571230 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs new file mode 100644 index 0000000..7eb5de3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs @@ -0,0 +1,45 @@ +#if UNITY_EDITOR + +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + ///A drawer for Tasks + public class TaskDrawer : ObjectDrawer + { + public override Task OnGUI(GUIContent content, Task instance) { + //we presume the system is the context unity object (99% will be and always is in default NC) + var system = contextUnityObject as ITaskSystem; + if ( system == null ) { + GUILayout.Label("Can't resolve ITaskSystem for task"); + return instance; + } + + if ( fieldInfo.FieldType == typeof(ActionList) ) { + if ( instance == null ) { instance = Task.Create(system); } + ( instance as ActionList ).ShowListGUI(); + ( instance as ActionList ).ShowNestedActionsGUI(); + return instance; + } + + if ( fieldInfo.FieldType == typeof(ConditionList) ) { + if ( instance == null ) { instance = Task.Create(system); } + ( instance as ConditionList ).ShowListGUI(); + ( instance as ConditionList ).ShowNestedConditionsGUI(); + return instance; + } + + //we need capture the objects for the delegate callback + var _field = fieldInfo; + var _context = context; + TaskEditor.TaskFieldMulti(instance, system, _field.FieldType, (t) => _field.SetValue(_context, t)); + EditorUtils.Separator(); + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs.meta new file mode 100644 index 0000000..1540322 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Drawers/TaskDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3a52630c10cb08b42bc06fa496ffae63 +timeCreated: 1514571230 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs new file mode 100644 index 0000000..f2d54b1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs @@ -0,0 +1,380 @@ +#if UNITY_EDITOR + +using NodeCanvas.Editor; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEditor; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + + +namespace NodeCanvas.Framework +{ + + partial class Connection + { + + public enum RelinkState + { + None, + Source, + Target + } + + public enum TipConnectionStyle + { + None, + Circle, + Arrow + } + + ///---------------------------------------------------------------------------------------------- + + [SerializeField, fsIgnoreInBuild] + private bool _infoCollapsed; + + const float RELINK_DISTANCE_SNAP = 20f; + const float STATUS_BLINK_DURATION = 0.25f; + const float STATUS_BLINK_SIZE_ADD = 2f; + const float STATUS_BLINK_PACKET_SPEED = 0.8f; + const float STATUS_BLINK_PACKET_SIZE = 10f; + const float STATUS_BLINK_PACKET_COUNT = 4f; + + public Rect startRect { get; private set; } + public Rect endRect { get; private set; } + + private Rect centerRect; + private Vector2 fromTangent; + private Vector2 toTangent; + + private Status lastStatus = Status.Resting; + private Color color = StyleSheet.GetStatusColor(Status.Resting); + private float size = 3; + private float statusChangeTime; + + private Vector2? relinkClickPos; + private bool relinkSnaped; + + ///---------------------------------------------------------------------------------------------- + + ///Editor. Is info expanded? + private bool infoExpanded { + get { return !_infoCollapsed; } + set { _infoCollapsed = !value; } + } + + ///Editor. Is currently actively relinking? + private bool isRelinkingActive => relinkClickPos != null && relinkSnaped; + + ///Editor. Current relinking state + public RelinkState relinkState { get; private set; } + + ///Editor. Default Color of connection + virtual public Color defaultColor => StyleSheet.GetStatusColor(status); + + ///Editor. Will animate connection? By default if status running + virtual public bool animate => status == Status.Running; + + ///Editor. Defacult size of connection + virtual public float defaultSize => 3f; + + ///Editor. End Tip connection style + virtual public TipConnectionStyle tipConnectionStyle => TipConnectionStyle.Circle; + + ///---------------------------------------------------------------------------------------------- + + //Draw connection from-to + public void DrawConnectionGUI(Vector2 fromPos, Vector2 toPos) { + + var _startRect = new Rect(0, 0, 12, 12); + _startRect.center = fromPos; + startRect = _startRect; + + var _endRect = new Rect(0, 0, 16, 16); + _endRect.center = toPos; + endRect = _endRect; + + CurveUtils.ResolveTangents(fromPos, toPos, sourceNode.rect, targetNode.rect, Prefs.connectionsMLT, graph.flowDirection, out fromTangent, out toTangent); + if ( sourceNode == targetNode ) { + fromTangent = fromTangent.normalized * 120; + toTangent = toTangent.normalized * 120; + } + + centerRect.center = ParadoxNotion.CurveUtils.GetPosAlongCurve(fromPos, toPos, fromTangent, toTangent, 0.55f); + + HandleEvents(fromPos, toPos); + DrawConnection(fromPos, toPos); + + if ( !isRelinkingActive ) { + if ( Application.isPlaying && isActive ) { + UpdateBlinkStatus(fromPos, toPos); + } + if ( !DrawPossibleError(fromPos, toPos) ) { + DrawInfoRect(fromPos, toPos); + } + } + } + + ///Handle UI events + void HandleEvents(Vector2 fromPos, Vector2 toPos) { + + var e = Event.current; + + //On click select this connection + if ( GraphEditorUtility.allowClick && e.type == EventType.MouseDown && e.button == 0 ) { + var onConnection = CurveUtils.IsPosAlongCurve(fromPos, toPos, fromTangent, toTangent, e.mousePosition, out float norm); + var onStart = startRect.Contains(e.mousePosition); + var onEnd = endRect.Contains(e.mousePosition); + var onCenter = centerRect.Contains(e.mousePosition); + if ( onConnection || onStart || onEnd || onCenter ) { + GraphEditorUtility.activeElement = this; + relinkClickPos = e.mousePosition; + relinkSnaped = false; + if ( onConnection ) { relinkState = norm <= 0.55f || e.shift ? RelinkState.Source : RelinkState.Target; } + if ( onStart ) { relinkState = RelinkState.Source; } + if ( onEnd ) { relinkState = RelinkState.Target; } + if ( onCenter ) { relinkState = e.shift ? RelinkState.Source : RelinkState.Target; } + e.Use(); + } + } + + if ( relinkClickPos != null ) { + + if ( relinkSnaped == false ) { + if ( Vector2.Distance(relinkClickPos.Value, e.mousePosition) > RELINK_DISTANCE_SNAP ) { + relinkSnaped = true; + sourceNode.OnActiveRelinkStart(this); + } + } + + if ( e.rawType == EventType.MouseUp && e.button == 0 ) { + if ( relinkSnaped == true ) { + sourceNode.OnActiveRelinkEnd(this); + } + relinkClickPos = null; + relinkSnaped = false; + relinkState = RelinkState.None; + e.Use(); + } + } + + if ( GraphEditorUtility.allowClick && e.type == EventType.ContextClick && e.button == 1 && centerRect.Contains(e.mousePosition) ) { + GraphEditorUtility.PostGUI += () => { GetConnectionMenu().ShowAsContext(); }; + e.Use(); + } + } + + //The actual connection graphic + void DrawConnection(Vector2 fromPos, Vector2 toPos) { + + color = isActive ? color : Colors.Grey(0.3f); + if ( !Application.isPlaying ) { + color = isActive ? defaultColor : Colors.Grey(0.3f); + var highlight = GraphEditorUtility.activeElement == this || GraphEditorUtility.activeElement == sourceNode || GraphEditorUtility.activeElement == targetNode; + if ( startRect.Contains(Event.current.mousePosition) || endRect.Contains(Event.current.mousePosition) ) { + highlight = true; + } + color.a = highlight ? 1 : color.a; + size = highlight ? defaultSize + 2 : defaultSize; + } + + //alter from/to if active relinking + if ( isRelinkingActive ) { + if ( relinkState == RelinkState.Source ) { + fromPos = Event.current.mousePosition; + } + if ( relinkState == RelinkState.Target ) { + toPos = Event.current.mousePosition; + } + CurveUtils.ResolveTangents(fromPos, toPos, Prefs.connectionsMLT, graph.flowDirection, out fromTangent, out toTangent); + size = defaultSize; + } + + var shadow = new Vector2(3.5f, 3.5f); + Handles.DrawBezier(fromPos, toPos + shadow, fromPos + shadow + fromTangent + shadow, toPos + shadow + toTangent, Color.black.WithAlpha(0.1f), StyleSheet.bezierTexture, size + 10f); + Handles.DrawBezier(fromPos, toPos, fromPos + fromTangent, toPos + toTangent, color, StyleSheet.bezierTexture, size); + + GUI.color = color.WithAlpha(1); + if ( tipConnectionStyle == TipConnectionStyle.Arrow ) { + GUI.DrawTexture(endRect, StyleSheet.GetDirectionArrow(toTangent.normalized)); + } + if ( tipConnectionStyle == TipConnectionStyle.Circle ) { + GUI.DrawTexture(endRect, StyleSheet.circle); + } + GUI.color = Color.white; + } + + //Information showing in the middle + void DrawInfoRect(Vector2 fromPos, Vector2 toPos) { + var isExpanded = infoExpanded || GraphEditorUtility.activeElement == this || GraphEditorUtility.activeElement == sourceNode; + var alpha = isExpanded ? 0.8f : 0.25f; + var info = GetConnectionInfo(); + var extraInfo = sourceNode.GetConnectionInfo(sourceNode.outConnections.IndexOf(this)); + if ( !string.IsNullOrEmpty(info) || !string.IsNullOrEmpty(extraInfo) ) { + + if ( !string.IsNullOrEmpty(extraInfo) && !string.IsNullOrEmpty(info) ) { + extraInfo = "\n" + extraInfo; + } + + var textToShow = isExpanded ? string.Format("{0}{1}", info, extraInfo) : "..."; + var finalSize = StyleSheet.box.CalcSize(EditorUtils.GetTempContent(textToShow)); + + centerRect.width = finalSize.x; + centerRect.height = finalSize.y; + + EditorGUIUtility.AddCursorRect(centerRect, MouseCursor.Link); + + GUI.color = Colors.Grey(EditorGUIUtility.isProSkin ? 0.17f : 0.5f).WithAlpha(0.95f); + GUI.DrawTexture(centerRect, Texture2D.whiteTexture); + + GUI.color = Color.white.WithAlpha(alpha); + GUI.Label(centerRect, textToShow, Styles.centerLabel); + GUI.color = Color.white; + + } else { + + centerRect.width = 0; + centerRect.height = 0; + } + } + + ///Draw icon if there are errors + bool DrawPossibleError(Vector2 fromPos, Vector2 toPos) { + var error = GetError(); + if ( error != null ) { + var r = new Rect(0, 0, 32, 32); + r.center = this.centerRect.center; + GUI.DrawTexture(r.ExpandBy(-10, -6), Texture2D.whiteTexture); + GUI.DrawTexture(r, Icons.errorIconBig); + return true; + } + return false; + } + + ///Updates the blink status + void UpdateBlinkStatus(Vector2 fromPos, Vector2 toPos) { + + OnBeforeUpdateBlinkStatus(); + + if ( !graph.isRunning ) { + size = defaultSize; + color = defaultColor; + return; + } + + if ( status != lastStatus ) { + lastStatus = status; + statusChangeTime = graph.elapsedTime; + } + + var deltaTimeSinceChange = ( graph.elapsedTime - statusChangeTime ); + if ( status != Status.Resting || size != defaultSize ) { + size = Mathf.Lerp(defaultSize + STATUS_BLINK_SIZE_ADD, defaultSize, deltaTimeSinceChange / STATUS_BLINK_DURATION); + } + + if ( status != Status.Resting || size == defaultSize ) { + color = defaultColor; + } + + if ( animate ) { + var packetTraversal = deltaTimeSinceChange * STATUS_BLINK_PACKET_SPEED; + for ( var i = 0f; i < STATUS_BLINK_PACKET_COUNT; i++ ) { + var progression = packetTraversal + ( i / STATUS_BLINK_PACKET_COUNT ); + var normPos = Mathf.Repeat(progression, 1f); + + var packetColor = this.color; + var pingPong = Mathf.PingPong(normPos, 0.5f); + var norm = ( pingPong * 2 ) / 0.5f; + var pSize = Mathf.Lerp(0.5f, 1f, norm) * STATUS_BLINK_PACKET_SIZE; + packetColor.a = norm * ( deltaTimeSinceChange / ( STATUS_BLINK_DURATION + 0.25f ) ); + + var rect = new Rect(0, 0, pSize, pSize); + rect.center = CurveUtils.GetPosAlongCurve(fromPos, toPos, fromTangent, toTangent, normPos); ; + GUI.color = packetColor; + GUI.DrawTexture(rect, StyleSheet.circle); + GUI.color = Color.white; + } + } + } + + ///---------------------------------------------------------------------------------------------- + + //The connection's inspector + public static void ShowConnectionInspectorGUI(Connection c) { + + UndoUtility.CheckUndo(c.graph, "Connection Inspector"); + + GUILayout.BeginHorizontal(); + GUI.color = new Color(1, 1, 1, 0.5f); + + c.isActive = EditorGUILayout.ToggleLeft("Active", c.isActive, GUILayout.Width(150)); + + GUILayout.FlexibleSpace(); + + if ( GUILayout.Button("X", GUILayout.Width(20)) ) { + GraphEditorUtility.PostGUI += () => { c.graph.RemoveConnection(c); }; + } + + GUI.color = Color.white; + GUILayout.EndHorizontal(); + + EditorUtils.BoldSeparator(); + c.OnConnectionInspectorGUI(); + c.sourceNode.OnConnectionInspectorGUI(c.sourceNode.outConnections.IndexOf(c)); + + UndoUtility.CheckDirty(c.graph); + } + + ///Editor. The information to show in the middle area of the connection + virtual protected string GetConnectionInfo() { return null; } + ///Editor.Override to show controls in the editor panel when connection is selected + virtual protected void OnConnectionInspectorGUI() { } + ///Editor. Callback before connections blink status + virtual protected void OnBeforeUpdateBlinkStatus() { } + ///Editor. Get possible error, null if none + virtual protected string GetError() { return null; } + + ///Returns the mid position rect of the connection + public Rect GetMidRect() { + return centerRect; + } + + ///the connection context menu + GenericMenu GetConnectionMenu() { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent(infoExpanded ? "Collapse Info" : "Expand Info"), false, () => { infoExpanded = !infoExpanded; }); + menu.AddItem(new GUIContent(isActive ? "Disable" : "Enable"), false, () => { isActive = !isActive; }); + + if ( this is ITaskAssignable assignable ) { + + if ( assignable.task != null ) { + menu.AddItem(new GUIContent("Copy Assigned Condition"), false, () => { CopyBuffer.Set(assignable.task); }); + } else { menu.AddDisabledItem(new GUIContent("Copy Assigned Condition")); } + + if ( CopyBuffer.TryGet(out Task copy) ) { + menu.AddItem(new GUIContent(string.Format("Paste Assigned Condition ({0})", copy.name)), false, () => + { + if ( assignable.task != null ) { + if ( !EditorUtility.DisplayDialog("Paste Condition", string.Format("Connection already has a Condition assigned '{0}'. Replace assigned condition with pasted condition '{1}'?", assignable.task.name, copy.name), "YES", "NO") ) { + return; + } + } + + try { assignable.task = copy.Duplicate(graph); } + catch { Logger.LogWarning("Can't paste Condition here. Incombatible Types.", LogTag.EDITOR, this); } + }); + + } else { menu.AddDisabledItem(new GUIContent("Paste Assigned Condition")); } + + } + + menu.AddSeparator("/"); + menu.AddItem(new GUIContent("Delete"), false, () => { graph.RemoveConnection(this); }); + return menu; + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs.meta new file mode 100644 index 0000000..7da50f4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Connection.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f713408ec801d4340895cf7beda1ca54 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs new file mode 100644 index 0000000..77191ea --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs @@ -0,0 +1,83 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Framework +{ + + partial class Graph + { + + private int _childAssignableIndex = -1; + + ///EDITOR. Responsible for breacrumb navigation only + public Graph GetCurrentChildGraph() { + if ( _childAssignableIndex == -1 || _childAssignableIndex > allNodes.Count - 1 ) { + return null; + } + var assignable = allNodes[_childAssignableIndex] as IGraphAssignable; + if ( assignable != null ) { + return assignable.subGraph; + } + return null; + } + + ///EDITOR. Responsible for breacrumb navigation only + public void SetCurrentChildGraphAssignable(IGraphAssignable assignable) { + if ( assignable == null || assignable.subGraph == null ) { + _childAssignableIndex = -1; + return; + } + if ( Application.isPlaying && EditorUtility.IsPersistent(assignable.subGraph) ) { + ParadoxNotion.Services.Logger.LogWarning("You can't view sub-graphs in play mode until they are initialized to avoid editing asset references accidentally", LogTag.EDITOR, this); + _childAssignableIndex = -1; + return; + } + assignable.subGraph.SetCurrentChildGraphAssignable(null); + _childAssignableIndex = allNodes.IndexOf(assignable as Node); + } + + ///---------------------------------------------------------------------------------------------- + + ///Editor. Returns a Generic Menu for on canvas click + public GenericMenu CallbackOnCanvasContextMenu(GenericMenu menu, Vector2 canvasMousePos) { return OnCanvasContextMenu(menu, canvasMousePos); } + ///Editor. Returns a Generic menu for on node click + public GenericMenu CallbackOnNodesContextMenu(GenericMenu menu, Node[] nodes) { return OnNodesContextMenu(menu, nodes); } + ///Editor. Invoke drag and drop on canvas for object + public void CallbackOnDropAccepted(Object o, Vector2 canvasMousePos) { + ///for all graphs, make possible to drag and drop IGraphAssignables + foreach ( var type in Editor.GraphEditorUtility.GetDropedReferenceNodeTypes(o) ) { + if ( baseNodeType.IsAssignableFrom(type) ) { + var node = (IGraphAssignable)AddNode(type, canvasMousePos); + node.subGraph = (Graph)o; + return; + } + } + OnDropAccepted(o, canvasMousePos); + } + ///Editor. Invoke drag and drop on canvas for variable + public void CallbackOnVariableDropInGraph(IBlackboard bb, Variable variable, Vector2 canvasMousePos) { OnVariableDropInGraph(bb, variable, canvasMousePos); } + ///Editor. Allows adding more stuff in graph editor toolbar per graph instance + public void CallbackOnGraphEditorToolbar() { OnGraphEditorToolbar(); } + + ///---------------------------------------------------------------------------------------------- + + ///Editor. Override to add extra context sensitive options in the right click canvas context menu + virtual protected GenericMenu OnCanvasContextMenu(GenericMenu menu, Vector2 canvasMousePos) { return menu; } + ///Editor. Override to add more entries to the right click context menu when multiple nodes are selected + virtual protected GenericMenu OnNodesContextMenu(GenericMenu menu, Node[] nodes) { return menu; } + ///Editor. Handle drag and drop objects in the graph + virtual protected void OnDropAccepted(Object o, Vector2 canvasMousePos) { } + ///Editor. Handle what happens when blackboard variable is drag and droped in graph + virtual protected void OnVariableDropInGraph(IBlackboard bb, Variable variable, Vector2 canvasMousePos) { } + ///Editor. Append stuff in graph editor toolbar + virtual protected void OnGraphEditorToolbar() { } + + ///---------------------------------------------------------------------------------------------- + + } +} + +#endif diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs.meta new file mode 100644 index 0000000..39c829a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Graph.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0137bd22ce62a6f449a25b6f40211b9f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs new file mode 100644 index 0000000..4bead0d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs @@ -0,0 +1,1087 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Editor; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Framework +{ + + partial class Node + { + + //Class for the nodeports GUI + class GUIPort + { + public int portIndex { get; private set; } + public Node parent { get; private set; } + public Vector2 pos { get; private set; } + public GUIPort(int index, Node parent, Vector2 pos) { + this.portIndex = index; + this.parent = parent; + this.pos = pos; + } + } + + //Verbose level + public enum VerboseLevel + { + Compact = 0, + Partial = 1, + Full = 2, + } + + ///---------------------------------------------------------------------------------------------- + + [SerializeField, fsIgnoreInBuild] + private bool _collapsed; + [SerializeField, fsIgnoreInBuild] + private Color _color; + [SerializeField, fsIgnoreInBuild] + private VerboseLevel _verboseLevel = VerboseLevel.Full; + + ///---------------------------------------------------------------------------------------------- + + readonly private static Vector2 MIN_SIZE = new Vector2(80, 20); + private const string DEFAULT_HEX_COLOR_LIGHT = "eed9a7"; + private const string DEFAULT_HEX_COLOR_DARK = "333333"; + private static GUIPort clickedPort { get; set; } + private static int dragDropMisses { get; set; } + private static List adjustingBoundCanvasGroups { get; set; } + + private Vector2 size = MIN_SIZE; + private object _icon { get; set; } + private GUIContent _cachedHeaderContent { get; set; } + private bool colorLoaded { get; set; } + private bool hasColorAttribute { get; set; } + private string hexColor { get; set; } + private Color colorAttributeColor { get; set; } + private bool nodeIsPressed { get; set; } + private bool? _isHidden { get; set; } + + ///EDITOR! This is to be able to work with rects which is easier in many cases. Size is temporary to the node since it's auto adjusted thus no need to serialize it + public Rect rect { + get { return new Rect(_position.x, _position.y, size.x, size.y); } + private set + { + _position = new Vector2(value.x, value.y); + size = new Vector2(Mathf.Max(value.width, MIN_SIZE.x), Mathf.Max(value.height, MIN_SIZE.y)); + } + } + + ///EDITOR! Active is relevant to the input connections + public bool isActive { + get + { + for ( var i = 0; i < inConnections.Count; i++ ) { + if ( inConnections[i].isActive ) { + return true; + } + } + return inConnections.Count == 0; + } + } + + ///EDITOR! Are children collapsed? + public bool collapsed { + get { return _collapsed; } + set + { + if ( _collapsed != value ) { + _collapsed = value; + //just reset all node isHidden cache is easier than other solutions + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + graph.allNodes[i]._isHidden = null; + } + } + } + } + + ///EDITOR! Is the node hidden due to parent has children collapsed or is hidden? + public bool isHidden { + get + { + if ( _isHidden != null ) { return _isHidden.Value; } + if ( graph.isTree && inConnections.Count > 0 ) { + var parent = inConnections[0].sourceNode; + if ( parent.ID > this.ID ) { return ( _isHidden = false ).Value; } + return ( _isHidden = parent.collapsed || parent.isHidden ).Value; + } + return ( _isHidden = false ).Value; + } + } + + ///EDITOR! The custom color set by user. + public Color customColor { + get { return _color; } + set { _color = value; } + } + + ///EDITOR! Verbose level of the node GUI + public VerboseLevel verboseLevel { + get { return _verboseLevel; } + set { _verboseLevel = value; } + } + + ///EDITOR! is the node selected or part of the multi selection? + public bool isSelected { get { return GraphEditorUtility.activeElement == this || GraphEditorUtility.activeElements.Contains(this); } } + + ///EDITOR! Node has an icon? + private bool hasIcon { get { return icon != null; } } + + ///EDITOR! cached GUIContent for node header name + private GUIContent cachedHeaderContent { + get + { + if ( _cachedHeaderContent == null || _nameCache != name ) { + string hex; + if ( nodeColor != default(Color) ) { + hex = nodeColor.grayscale > 0.6f ? DEFAULT_HEX_COLOR_DARK : DEFAULT_HEX_COLOR_LIGHT; + } else { + hex = EditorGUIUtility.isProSkin ? hexColor : DEFAULT_HEX_COLOR_DARK; + } + var finalTitle = this is IGraphAssignable ? string.Format("{{ {0} }}", name) : name; + var text = string.Format("{1}", hex, finalTitle); + var image = hasIcon && iconAlignment == Alignment2x2.Left ? icon : null; + _cachedHeaderContent = new GUIContent(text, image); + } + return _cachedHeaderContent; + } + } + + ///EDITOR! The icon of the node + private Texture2D icon { + get + { + if ( _icon == null ) { + if ( this is ITaskAssignable ) { + var assignable = this as ITaskAssignable; + _icon = assignable.task != null ? assignable.task.icon : null; + } + if ( _icon == null ) { + var iconAtt = this.GetType().RTGetAttribute(true); + _icon = iconAtt != null ? TypePrefs.GetTypeIcon(iconAtt, this) : null; + } + if ( _icon == null ) { + _icon = new object(); + } + } + return _icon as Texture2D; + } + } + + ///EDITOR! The coloring of the node if any. + public Color nodeColor { + get + { + if ( !colorLoaded ) { + colorLoaded = true; + hasColorAttribute = false; + colorAttributeColor = default(Color); + hexColor = DEFAULT_HEX_COLOR_LIGHT; + var cAtt = this.GetType().RTGetAttribute(true); + if ( cAtt != null ) { + hasColorAttribute = true; + colorAttributeColor = ColorUtils.HexToColor(cAtt.hexColor); + hexColor = cAtt.hexColor; + _color = default(Color); + } + } + + if ( !hasColorAttribute && customColor != default(Color) ) { + return customColor; + } + + return colorAttributeColor; + } + private set + { + if ( customColor != value ) { + _cachedHeaderContent = null; //flush content + if ( value.a <= 0.2f ) { + customColor = default(Color); + hexColor = DEFAULT_HEX_COLOR_LIGHT; + return; + } + customColor = value; + var temp = (Color32)value; + hexColor = ( temp.r.ToString("X2") + temp.g.ToString("X2") + temp.b.ToString("X2") ).ToLower(); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///EDITOR! A position relative to the node + protected Vector2 GetRelativeNodePosition(Alignment2x2 alignment, float margin = 0) { + switch ( alignment ) { + case ( Alignment2x2.Default ): + return rect.center; + + case ( Alignment2x2.Left ): + return new Vector2(rect.xMin - margin, rect.center.y); + + case ( Alignment2x2.Right ): + return new Vector2(rect.xMax + margin, rect.center.y); + + case ( Alignment2x2.Top ): + return new Vector2(rect.center.x, rect.yMin - margin); + + case ( Alignment2x2.Bottom ): + return new Vector2(rect.center.x, rect.yMax + margin); + } + + return rect.center; + } + + + ///---------------------------------------------------------------------------------------------- + + //The main function for drawing a node's gui.Fires off others. + public static void ShowNodeGUI(Node node, Rect drawCanvas, bool fullDrawPass, Vector2 canvasMousePos, float zoomFactor) { + + if ( node.isHidden ) { + return; + } + + if ( fullDrawPass || drawCanvas.Overlaps(node.rect) || GraphEditorUtility.activeNode == node ) { + DrawNodeWindow(node, canvasMousePos, zoomFactor); + DrawNodeTag(node); + DrawNodeComments(node); + DrawNodeElapsedTime(node); + DrawNodeID(node); + DrawBreakpoint(node); + } + + DrawReferenceLinks(node); + node.OnNodeExternalGUI(); + node.DrawNodeConnections(drawCanvas, fullDrawPass, canvasMousePos, zoomFactor); + } + + //Draw the window + static void DrawNodeWindow(Node node, Vector2 canvasMousePos, float zoomFactor) { + + //un-colapse children ui + if ( node.collapsed ) { + var r = new Rect(node.rect.x, ( node.rect.yMax + 10 ), node.rect.width, 20); + EditorGUIUtility.AddCursorRect(r, MouseCursor.Link); + if ( GUI.Button(r, "COLLAPSED", StyleSheet.box) ) { + node.collapsed = false; + } + } + + GUI.color = node.isActive ? Color.white : new Color(0.9f, 0.9f, 0.9f, 0.8f); + GUI.color = GraphEditorUtility.activeElement == node ? new Color(0.9f, 0.9f, 1) : GUI.color; + //Remark: using MaxWidth and MaxHeight makes GUILayout window contract width and height \o/ + node.rect = GUILayout.Window(node.ID, node.rect, (ID) => { NodeWindowGUI(node, ID); }, string.Empty, StyleSheet.window, GUILayout.MaxHeight(MIN_SIZE.y), GUILayout.MaxWidth(MIN_SIZE.x)); + + GUI.color = Color.white; + Styles.Draw(node.rect, StyleSheet.windowShadow); + + if ( Application.isPlaying && node.status != Status.Resting ) { + GUI.color = StyleSheet.GetStatusColor(node.status); + Styles.Draw(node.rect, StyleSheet.windowHighlight); + + } else { + + if ( node.isSelected ) { + GUI.color = StyleSheet.GetStatusColor(Status.Resting); + Styles.Draw(node.rect, StyleSheet.windowHighlight); + } + } + + GUI.color = Color.white; + if ( GraphEditorUtility.allowClick ) { + if ( zoomFactor == 1f ) { + EditorGUIUtility.AddCursorRect(new Rect(node.rect.x, node.rect.y, node.rect.width, node.rect.height), MouseCursor.Link); + } + } + } + + + //This is the callback function of the GUILayout.window. Everything here is called INSIDE the node Window callback. + //The Window ID is the same as the node.ID. + static void NodeWindowGUI(Node node, int ID) { + + var e = Event.current; + + ShowHeader(node); + ShowPossibleWarningError(node); + HandleEvents(node, e); + ShowStatusIcons(node); + ShowNodeContents(node); + HandleContextMenu(node, e); + HandleNodePosition(node, e); + } + + //The title name or icon of the node + static void ShowHeader(Node node) { + + //text + if ( !node.hasIcon || node.iconAlignment != Alignment2x2.Default ) { + if ( node.name != null ) { + EditorGUIUtility.SetIconSize(new Vector2(16, 16)); + //Remark: CalcHeight does not take into account SetIconSize. CalcSize does. + var headerHeight = StyleSheet.windowTitle.CalcSize(node.cachedHeaderContent).y; + if ( node.nodeColor != default(Color) ) { + GUI.color = node.nodeColor; + if ( node.rect.height <= 35 ) { headerHeight = 35; } + Styles.Draw(new Rect(0, 0, node.rect.width, headerHeight), StyleSheet.windowHeader); + GUI.color = Color.white; + } else { + Handles.color = Color.black.WithAlpha(0.5f); + Handles.DrawPolyLine(new Vector3(5, headerHeight, 0), new Vector3(node.rect.width - 5, headerHeight, 0)); + Handles.color = Color.white; + } + GUILayout.Label(node.cachedHeaderContent, StyleSheet.windowTitle); + EditorGUIUtility.SetIconSize(Vector2.zero); + } + } + + //icon + if ( node.hasIcon && ( node.iconAlignment == Alignment2x2.Default || node.iconAlignment == Alignment2x2.Bottom ) ) { + GUI.color = node.nodeColor.a > 0.2f ? node.nodeColor : Color.white; + //TODO: can be expensive for the light theme -> handle somehow else + if ( !EditorGUIUtility.isProSkin ) { + var assignable = node as ITaskAssignable; + ParadoxNotion.Design.IconAttribute att = null; + if ( assignable != null && assignable.task != null ) { att = assignable.task.GetType().RTGetAttribute(true); } + if ( att == null ) { att = node.GetType().RTGetAttribute(true); } + if ( att != null && att.fixedColor == false ) { GUI.color = Color.black.WithAlpha(0.7f); } + } + + GUI.backgroundColor = Color.clear; + GUILayout.Box(node.icon, StyleSheet.box, GUILayout.MaxHeight(32)); + GUI.backgroundColor = Color.white; + GUI.color = Color.white; + } + } + + ///Responsible for showing warning/error icons + static void ShowPossibleWarningError(Node node) { + var warning = node.GetWarningOrError(); + if ( warning != null ) { + var icon = warning.StartsWith("*") ? Icons.errorIcon : Icons.warningIcon; + var errorRect = new Rect(node.rect.width - 21, 5, 16, 16); + GUI.Box(errorRect, EditorUtils.GetTempContent(null, icon, warning), GUIStyle.none); + } + } + + //Handles events, Mouse downs, ups etc. + static void HandleEvents(Node node, Event e) { + + //Node click + if ( e.type == EventType.MouseDown && GraphEditorUtility.allowClick && e.button != 2 ) { + + UndoUtility.RecordObjectComplete(node.graph, "Move Node"); + + if ( !e.control ) { + GraphEditorUtility.activeElement = node; + } + + if ( e.control ) { + if ( node.isSelected ) { GraphEditorUtility.RemoveActiveElement(node); } else { GraphEditorUtility.AddActiveElement(node); } + } + + if ( e.button == 0 ) { + node.nodeIsPressed = true; + adjustingBoundCanvasGroups = new List(); + if ( node.graph.canvasGroups != null ) { + foreach ( var group in node.graph.canvasGroups ) { + if ( group.rect.Encapsulates(node.rect) ) { + group.GatherContainedNodes(node.graph); + adjustingBoundCanvasGroups.Add(group); + } + } + } + } + + //Double click + if ( e.button == 0 && e.clickCount == 2 ) { + if ( node is IGraphAssignable && ( node as IGraphAssignable ).subGraph != null ) { + node.graph.SetCurrentChildGraphAssignable(node as IGraphAssignable); + node.nodeIsPressed = false; + } else if ( node is ITaskAssignable && ( node as ITaskAssignable ).task != null ) { + EditorUtils.OpenScriptOfType(( node as ITaskAssignable ).task.GetType()); + } else { + EditorUtils.OpenScriptOfType(node.GetType()); + } + e.Use(); + } + + node.OnNodePicked(); + } + + //.. + if ( e.type == EventType.MouseDrag ) { + if ( adjustingBoundCanvasGroups != null && !e.shift ) { + foreach ( var group in adjustingBoundCanvasGroups ) { group.AdjustToContainedNodes(); } + } + } + + //Mouse up + if ( e.type == EventType.MouseUp ) { + if ( node.nodeIsPressed ) { + node.TrySortConnectionsByRelativePosition(); + } + if ( adjustingBoundCanvasGroups != null ) { + foreach ( var group in adjustingBoundCanvasGroups ) { group.FlushContainedNodes(); } + adjustingBoundCanvasGroups = null; + } + node.nodeIsPressed = false; + node.OnNodeReleased(); + } + } + + //Shows the icons relative to the current node status + static void ShowStatusIcons(Node node) { + if ( Application.isPlaying && node.status != Status.Resting ) { + var markRect = new Rect(5, 5, 16, 16); + if ( node.status == Status.Success ) { + GUI.color = EditorGUIUtility.isProSkin ? StyleSheet.GetStatusColor(Status.Success) : Colors.Grey(0.25f); + GUI.DrawTexture(markRect, StyleSheet.statusSuccess); + + } else if ( node.status == Status.Running ) { + GUI.color = EditorGUIUtility.isProSkin ? StyleSheet.GetStatusColor(Status.Running) : Colors.Grey(0.25f); + GUI.DrawTexture(markRect, StyleSheet.statusRunning); + + } else if ( node.status == Status.Failure ) { + GUI.color = EditorGUIUtility.isProSkin ? StyleSheet.GetStatusColor(Status.Failure) : Colors.Grey(0.25f); + GUI.DrawTexture(markRect, StyleSheet.statusFailure); + } + } + } + + //Shows the actual node contents GUI + static void ShowNodeContents(Node node) { + + GUI.color = Color.white; + GUI.skin.label.richText = true; + GUI.skin.label.alignment = TextAnchor.MiddleCenter; + + node.OnNodeGUI(); + TaskAssignableNodeGUI(node); + GraphAssignableNodeGUI(node); + + GUI.skin.label.alignment = TextAnchor.UpperLeft; + } + + //... + static void TaskAssignableNodeGUI(Node node) { + if ( node is ITaskAssignable ) { + GUILayout.BeginVertical(Styles.roundedBox); + var task = ( node as ITaskAssignable ).task; + GUILayout.Label(task != null ? task.summaryInfo : "No Task"); + GUILayout.EndVertical(); + } + } + + //... + static void GraphAssignableNodeGUI(Node node) { + if ( node is IGraphAssignable ) { + var assignable = (IGraphAssignable)node; + if ( assignable.subGraphParameter != null ) { + GUILayout.BeginVertical(Styles.roundedBox); + GUILayout.Label(string.Format("Sub{0}\n{1}", assignable.subGraphParameter.varType.Name, assignable.subGraphParameter.ToString())); + if ( assignable.subGraph == null ) { + if ( !Application.isPlaying && GUILayout.Button("CREATE NEW") ) { + var newGraph = (Graph)EditorUtils.CreateAsset(assignable.subGraphParameter.varType); + if ( newGraph != null ) { + UndoUtility.RecordObjectComplete(node.graph, "New SubGraph"); + Undo.RegisterCreatedObjectUndo(newGraph, "CreateNested"); + assignable.subGraph = newGraph; + UndoUtility.SetDirty(newGraph); + UndoUtility.SetDirty(node.graph); + AssetDatabase.SaveAssets(); + } + } + } + GUILayout.EndVertical(); + } + } + } + + //Handles and shows the right click mouse button for the node context menu + static void HandleContextMenu(Node node, Event e) { + var isContextClick = ( e.type == EventType.MouseUp && e.button == 1 ) || ( e.type == EventType.ContextClick ); + if ( GraphEditorUtility.allowClick && isContextClick ) { + GenericMenu menu; + if ( GraphEditorUtility.activeElements.Count > 1 ) { + menu = GetNodeMenu_Multi(node.graph); + } else { + menu = GetNodeMenu_Single(node); + } + if ( menu != null ) { + //show in PostGUI due to zoom factor + GraphEditorUtility.PostGUI += () => { menu.ShowAsContext(); }; + e.Use(); + } + } + } + + //Returns multi node context menu + static GenericMenu GetNodeMenu_Multi(Graph graph) { + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Duplicate Selected Nodes"), false, () => + { + var newNodes = Graph.CloneNodes(GraphEditorUtility.activeElements.OfType().ToList(), graph); + GraphEditorUtility.activeElements = newNodes.Cast().ToList(); + }); + menu.AddItem(new GUIContent("Copy Selected Nodes"), false, () => { CopyBuffer.SetCache(Graph.CloneNodes(GraphEditorUtility.activeElements.OfType().ToList()).ToArray()); }); + + //callback graph related extra menu items + menu = graph.CallbackOnNodesContextMenu(menu, GraphEditorUtility.activeElements.OfType().ToArray()); + + menu.AddSeparator("/"); + menu.AddItem(new GUIContent("Delete Selected Nodes"), false, () => { foreach ( Node n in GraphEditorUtility.activeElements.ToArray() ) graph.RemoveNode(n); }); + return menu; + } + + //Returns single node context menu + public static GenericMenu GetNodeMenu_Single(Node node) { + var menu = new GenericMenu(); + if ( node.graph.primeNode != node && node.allowAsPrime ) { + menu.AddItem(new GUIContent("Set Start"), false, () => { node.graph.primeNode = node; }); + } + + if ( node is IGraphAssignable ) { + menu.AddItem(new GUIContent("Edit Nested (Double Click)"), false, () => { node.graph.SetCurrentChildGraphAssignable(node as IGraphAssignable); }); + } + + menu.AddItem(new GUIContent("Duplicate (CTRL+D)"), false, () => { GraphEditorUtility.activeElement = node.Duplicate(node.graph); }); + menu.AddItem(new GUIContent("Copy Node"), false, () => { CopyBuffer.SetCache(new Node[] { node }); }); + + if ( node.inConnections.Count > 0 ) { + menu.AddItem(new GUIContent(node.isActive ? "Disable" : "Enable"), false, () => { node.SetActive(!node.isActive); }); + } + + if ( node.graph.isTree && node.outConnections.Count > 0 ) { + menu.AddItem(new GUIContent(node.collapsed ? "Expand Children" : "Collapse Children"), false, () => { node.collapsed = !node.collapsed; }); + } + + if ( node is ITaskAssignable ) { + var assignable = node as ITaskAssignable; + if ( assignable.task != null ) { + menu.AddItem(new GUIContent("Copy Assigned Task"), false, () => { CopyBuffer.SetCache(assignable.task); }); + } else { menu.AddDisabledItem(new GUIContent("Copy Assigned Task")); } + + if ( CopyBuffer.TryGetCache(out Task copy) ) { + menu.AddItem(new GUIContent("Paste Assigned Task"), false, () => + { + if ( assignable.task != null ) { + if ( !EditorUtility.DisplayDialog("Paste Task", string.Format("Node already has a Task assigned '{0}'. Replace assigned task with pasted task '{1}'?", assignable.task.name, copy.name), "YES", "NO") ) { + return; + } + } + + try { assignable.task = copy.Duplicate(node.graph); } + catch { ParadoxNotion.Services.Logger.LogWarning("Can't paste Task here. Incombatible Types", LogTag.EDITOR, node); } + }); + + } else { menu.AddDisabledItem(new GUIContent("Paste Assigned Task")); } + } + + //extra items with override + menu = node.OnContextMenu(menu); + + if ( menu != null ) { + + //extra items with attribute + foreach ( var _m in node.GetType().RTGetMethods() ) { + var m = _m; + var att = m.RTGetAttribute(true); + if ( att != null ) { + menu.AddItem(new GUIContent(att.menuItem), false, () => { m.Invoke(node, null); }); + } + } + + menu.AddSeparator("/"); + menu.AddItem(new GUIContent("Delete (DEL)"), false, () => { node.graph.RemoveNode(node); }); + } + return menu; + } + + //basicaly handles the node position and draging etc + static void HandleNodePosition(Node node, Event e) { + + if ( GraphEditorUtility.allowClick && e.button != 2 ) { + //drag all selected nodes + if ( e.type == EventType.MouseDrag && GraphEditorUtility.activeElements.Count > 1 ) { + for ( var i = 0; i < GraphEditorUtility.activeElements.Count; i++ ) { + ( (Node)GraphEditorUtility.activeElements[i] ).position += e.delta; + } + return; + } + + if ( node.nodeIsPressed ) { + var hierarchicalMove = Prefs.hierarchicalMove != e.shift; + //snap to grid + if ( !hierarchicalMove && Prefs.snapToGrid && GraphEditorUtility.activeElements.Count == 0 ) { + node.position = new Vector2(Mathf.Round(node.position.x / 20) * 20, Mathf.Round(node.position.y / 20) * 20); + } + + //recursive drag + if ( node.graph.isTree && e.type == EventType.MouseDrag ) { + if ( hierarchicalMove || node.collapsed ) { + RecursivePanNode(node, e.delta); + } + } + } + + //this drag + GUI.DragWindow(); + } + } + + //The comments of the node sitting next or bottom of it + static void DrawNodeComments(Node node) { + + if ( !Prefs.showComments || string.IsNullOrEmpty(node.comments) ) { + return; + } + + var commentsRect = new Rect(); + var style = StyleSheet.commentsBox; + var size = style.CalcSize(EditorUtils.GetTempContent(node.comments)); + + if ( node.commentsAlignment == Alignment2x2.Top ) { + size.y = style.CalcHeight(EditorUtils.GetTempContent(node.comments), node.rect.width); + commentsRect = new Rect(node.rect.x, node.rect.y - size.y, node.rect.width, size.y - 2); + } + if ( node.commentsAlignment == Alignment2x2.Bottom ) { + size.y = style.CalcHeight(EditorUtils.GetTempContent(node.comments), node.rect.width); + commentsRect = new Rect(node.rect.x, node.rect.yMax + 5, node.rect.width, size.y); + } + if ( node.commentsAlignment == Alignment2x2.Left ) { + var width = Mathf.Min(size.x, node.rect.width * 2); + commentsRect = new Rect(node.rect.xMin - width, node.rect.yMin, width, node.rect.height); + } + if ( node.commentsAlignment == Alignment2x2.Right ) { + commentsRect = new Rect(node.rect.xMax + 5, node.rect.yMin, Mathf.Min(size.x, node.rect.width * 2), node.rect.height); + } + + GUI.color = new Color(1, 1, 1, 0.6f); + GUI.backgroundColor = new Color(1f, 1f, 1f, 0.2f); + GUI.Box(commentsRect, node.comments, StyleSheet.commentsBox); + GUI.backgroundColor = Color.white; + GUI.color = Color.white; + } + + //Shows the tag label on the left of the node if it is tagged + static void DrawNodeTag(Node node) { + if ( !string.IsNullOrEmpty(node.tag) ) { + var size = StyleSheet.labelOnCanvas.CalcSize(EditorUtils.GetTempContent(node.tag)); + var tagRect = new Rect(node.rect.x - size.x - 10, node.rect.y, size.x, size.y); + GUI.Label(tagRect, node.tag, StyleSheet.labelOnCanvas); + tagRect.width = Icons.tagIcon.width; + tagRect.height = Icons.tagIcon.height; + tagRect.y += tagRect.height - 2; + tagRect.x = node.rect.x - 22; + GUI.DrawTexture(tagRect, Icons.tagIcon); + } + } + + //Show elapsed running time + static void DrawNodeElapsedTime(Node node) { + if ( Prefs.showNodeElapsedTimes ) { + var rect = new Rect(node.rect.x, node.rect.y - 18, node.rect.width, 18); + if ( node.graph.primeNode == node ) { rect.y -= 20f; } + GUI.color = Color.grey; + GUI.Label(rect, string.Format("{0}", node.elapsedTime.ToString("0.00")), StyleSheet.labelOnCanvas); + GUI.color = Color.white; + } + } + + //Show the Node ID, mostly for debug purposes + static void DrawNodeID(Node node) { + if ( Prefs.showNodeIDs ) { + var yOffset = Prefs.showNodeElapsedTimes ? 32 : 18; + if ( node.graph.primeNode == node ) { yOffset += 20; } + var rect = new Rect(node.rect.x, node.rect.y - yOffset, node.rect.width, 18); + GUI.color = Color.grey; + GUI.Label(rect, string.Format("#{0}", node.ID.ToString()), StyleSheet.labelOnCanvas); + GUI.color = Color.white; + } + } + + //Shows the breakpoint mark icon if node is set as a breakpoint + static void DrawBreakpoint(Node node) { + if ( node.isBreakpoint ) { + var rect = new Rect(node.rect.xMax - 16, node.rect.y - 16, 14, 14); + GUI.color = new Color(1f, 0.3f, 0.3f); + GUI.DrawTexture(rect, StyleSheet.circle); + GUI.color = Color.white; + } + } + + //Function to pan the node with children recursively + static void RecursivePanNode(Node node, Vector2 delta) { + node.position += delta; + for ( var i = 0; i < node.outConnections.Count; i++ ) { + var child = node.outConnections[i].targetNode; + if ( child.ID > node.ID ) { + RecursivePanNode(child, delta); + } + } + } + + //... + static void DrawReferenceLinks(Node node) { + if ( node is IHaveNodeReference && node.isSelected ) { + var target = ( node as IHaveNodeReference ).targetReference?.Get(node.graph); + if ( target != null ) { + Handles.color = Color.grey; + Handles.DrawAAPolyLine(node.rect.center, target.rect.center); + Handles.color = Color.white; + } + } + } + + //The inspector of the node shown in the editor panel or else. + static public void ShowNodeInspectorGUI(Node node) { + + UndoUtility.CheckUndo(node.graph, "Node Inspector"); + + GUI.backgroundColor = Colors.lightBlue; + EditorGUILayout.HelpBox(node.description, MessageType.None); + GUI.backgroundColor = Color.white; + + GUILayout.BeginHorizontal(); + GUI.color = Color.white.WithAlpha(0.5f); + if ( node.allowAsPrime && ( !node.hasIcon || node.iconAlignment != Alignment2x2.Default ) ) { + node.customName = EditorGUILayout.TextField(node.customName); + EditorUtils.CommentLastTextField(node.customName, "Name..."); + } + + node.tag = EditorGUILayout.TextField(node.tag); + EditorUtils.CommentLastTextField(node.tag, "Tag..."); + + if ( !node.hasColorAttribute ) { + node.nodeColor = EditorGUILayout.ColorField(node.nodeColor, GUILayout.Width(30)); + } + + GUILayout.EndHorizontal(); + + node.comments = EditorGUILayout.TextArea(node.comments); + EditorUtils.CommentLastTextField(node.comments, "Comments..."); + GUI.color = Color.white; + + EditorUtils.Separator(); + node.OnNodeInspectorGUI(); + TaskAssignableInspectorGUI(node); + GraphAssignableInspectorGUI(node); + + UndoUtility.CheckDirty(node.graph); + } + + //If the node implements ITaskAssignable... + static void TaskAssignableInspectorGUI(Node node) { + + if ( node is ITaskAssignable ) { + + var assignable = node as ITaskAssignable; + System.Type taskType = null; + var interfaces = node.GetType().GetInterfaces(); + for ( var i = 0; i < interfaces.Length; i++ ) { + var iType = interfaces[i]; + if ( iType.IsGenericType && iType.GetGenericTypeDefinition() == typeof(ITaskAssignable<>) ) { + taskType = iType.RTGetGenericArguments()[0]; + break; + } + } + + if ( taskType != null ) { + TaskEditor.TaskFieldMulti(assignable.task, node.graph, taskType, (t) => { node._icon = null; assignable.task = t; }); + } + } + } + + //If the node implements IGraphAssignable... + static void GraphAssignableInspectorGUI(Node node) { + if ( node is IGraphAssignable ) { + var assignable = node as IGraphAssignable; + assignable.ShowVariablesMappingGUI(); + if ( assignable.subGraphParameter != null ) { + if ( ReferenceEquals(assignable.subGraphParameter.value, assignable.graph) ) { + ParadoxNotion.Services.Logger.LogWarning("SubGraph can't be itself.", LogTag.EDITOR); + assignable.subGraphParameter.value = null; + } + } + } + } + + + //Activates/Deactivates all inComming connections + void SetActive(bool active) { + + if ( isChecked ) { + return; + } + + isChecked = true; + + //just for visual feedback + if ( !active ) { + GraphEditorUtility.activeElement = null; + } + + UndoUtility.RecordObject(graph, "SetActive"); + + //disable all incomming + foreach ( var cIn in inConnections ) { + cIn.isActive = active; + } + + //disable all outgoing + foreach ( var cOut in outConnections ) { + cOut.isActive = active; + } + + //if child is still considered active(= at least 1 incomming is active), continue else SetActive child as well. + foreach ( var child in outConnections.Select(c => c.targetNode) ) { + + if ( child.isActive == !active ) { + continue; + } + + child.SetActive(active); + } + + isChecked = false; + } + + + //Editor. Sorts the parent node connections based on all child nodes position according to flow direction. Possible only when not in play mode. + public void TrySortConnectionsByRelativePosition() { + if ( !Application.isPlaying && graph != null && graph.isTree && graph.flowDirection != PlanarDirection.Auto ) { + foreach ( var connection in inConnections.ToArray() ) { + var node = connection.sourceNode; + var original = node.outConnections.ToList(); + if ( graph.flowDirection == PlanarDirection.Horizontal ) { + node.outConnections = node.outConnections.OrderBy(c => c.targetNode.rect.center.y).ToList(); + } + if ( graph.flowDirection == PlanarDirection.Vertical ) { + node.outConnections = node.outConnections.OrderBy(c => c.targetNode.rect.center.x).ToList(); + } + var oldIndeces = node.outConnections.Select(x => original.IndexOf(x)).ToArray(); + foreach ( var field in node.GetType().RTGetFields() ) { + if ( field.RTIsDefined(true) ) { + var list = field.GetValue(node) as System.Collections.IList; + if ( list != null ) { + var temp = new object[list.Count]; + for ( var i = 0; i < list.Count; i++ ) { temp[i] = list[i]; } + for ( var i = 0; i < oldIndeces.Length; i++ ) { list[i] = temp[oldIndeces[i]]; } + } + } + } + node.OnChildrenConnectionsSorted(oldIndeces); + } + } + } + + ///Editor. Connection Relink has ended. Handle effect + virtual public void OnActiveRelinkEnd(Connection connection) { + for ( var i = 0; i < graph.allNodes.Count; i++ ) { + var otherNode = graph.allNodes[i]; + if ( otherNode.rect.Contains(Event.current.mousePosition) ) { + if ( connection.relinkState == Connection.RelinkState.Target && otherNode != connection.targetNode ) { + if ( Node.IsNewConnectionAllowed(connection.sourceNode, otherNode, connection) ) { + connection.SetTargetNode(otherNode); + } + } + if ( connection.relinkState == Connection.RelinkState.Source && otherNode != connection.sourceNode ) { + if ( Node.IsNewConnectionAllowed(otherNode, connection.targetNode, connection) ) { + connection.SetSourceNode(otherNode); + } + } + return; + } + } + } + + ///Draw an automatic editor inspector for this node. + protected void DrawDefaultInspector() { + EditorUtils.ReflectedObjectInspector(this, graph); + } + + ///Editor. Draw the connections line from this node, to all of its children. This is the default hierarchical tree style. Override in each system's base node class. + virtual protected void DrawNodeConnections(Rect drawCanvas, bool fullDrawPass, Vector2 canvasMousePos, float zoomFactor) { + + var e = Event.current; + + //Receive connections first + if ( clickedPort != null && e.type == EventType.MouseUp && e.button == 0 ) { + + if ( rect.Contains(e.mousePosition) ) { + graph.ConnectNodes(clickedPort.parent, this, clickedPort.portIndex); + clickedPort = null; + e.Use(); + + } else { + + dragDropMisses++; + + if ( dragDropMisses == graph.allNodes.Count && clickedPort != null ) { + + var source = clickedPort.parent; + var index = clickedPort.portIndex; + var pos = e.mousePosition; + clickedPort = null; + + System.Action Selected = delegate (System.Type type) + { + var newNode = graph.AddNode(type, pos); + graph.ConnectNodes(source, newNode, index); + GraphEditorUtility.activeElement = newNode; + }; + + var menu = EditorUtils.GetTypeSelectionMenu(graph.baseNodeType, Selected); + if ( zoomFactor == 1 ) { + menu.ShowAsBrowser(string.Format("Add {0} Node", graph.GetType().Name), graph.baseNodeType); + } else { + GraphEditorUtility.PostGUI += () => { menu.ShowAsContext(); }; + } + e.Use(); + } + } + } + + if ( maxOutConnections == 0 ) { + return; + } + + var portOffset = 6; + + if ( fullDrawPass || drawCanvas.Overlaps(rect) ) { + var canHaveMoreOutConnection = outConnections.Count < maxOutConnections || maxOutConnections == -1; + Rect nodeOutputBox = default; + if ( graph.flowDirection == PlanarDirection.Vertical ) { + nodeOutputBox = new Rect(0, 0, canHaveMoreOutConnection ? rect.width : 30, 12); + nodeOutputBox.center = new Vector2(rect.center.x, rect.yMax + 4); + } + if ( graph.flowDirection == PlanarDirection.Horizontal ) { + nodeOutputBox = new Rect(0, 0, 12, canHaveMoreOutConnection ? rect.height : 30); + nodeOutputBox.yMin += 2; + nodeOutputBox.center = new Vector2(rect.xMax + 4, rect.center.y); + } + Styles.Draw(nodeOutputBox, StyleSheet.nodePortContainer); + + if ( !collapsed ) { + var portRect = new Rect(0, 0, 12, 12); + if ( graph.flowDirection == PlanarDirection.Vertical ) { + portRect.center = new Vector2(rect.center.x, rect.yMax + portOffset); + } + if ( graph.flowDirection == PlanarDirection.Horizontal ) { + portRect.center = new Vector2(rect.xMax + portOffset, rect.center.y); + } + Styles.Draw(portRect, outConnections.Count > 0 ? StyleSheet.nodePortConnected : StyleSheet.nodePortEmpty); + + if ( GraphEditorUtility.allowClick && canHaveMoreOutConnection ) { + EditorGUIUtility.AddCursorRect(nodeOutputBox, MouseCursor.ArrowPlus); + if ( e.type == EventType.MouseDown && e.button == 0 ) { + if ( portRect.Contains(e.mousePosition) || nodeOutputBox.Contains(e.mousePosition) ) { + dragDropMisses = 0; + clickedPort = new GUIPort(-1, this, portRect.center); + e.Use(); + } + } + } + } + } + + //draw the new drag&drop connection line + if ( clickedPort != null && clickedPort.parent == this ) { + var tangA = default(Vector2); + var tangB = default(Vector2); + ParadoxNotion.CurveUtils.ResolveTangents(clickedPort.pos, e.mousePosition, Prefs.connectionsMLT, graph.flowDirection, out tangA, out tangB); + Handles.DrawBezier(clickedPort.pos, e.mousePosition, clickedPort.pos + tangA, e.mousePosition + tangB, StyleSheet.GetStatusColor(Status.Resting).WithAlpha(0.8f), StyleSheet.bezierTexture, 3); + } + + //draw all connected lines + for ( var i = 0; i < outConnections.Count; i++ ) { + + var connection = outConnections[i]; + if ( connection == null || connection.targetNode is Internal.MissingNode ) { + continue; + } + + Vector2 sourcePos = rect.center; + Vector2 targetPos = rect.center; + if ( graph.flowDirection == PlanarDirection.Vertical ) { + sourcePos = new Vector2(rect.center.x, rect.yMax + portOffset); + targetPos = new Vector2(connection.targetNode.rect.center.x, connection.targetNode.rect.y); + } + if ( graph.flowDirection == PlanarDirection.Horizontal ) { + sourcePos = new Vector2(rect.xMax + portOffset, rect.center.y); + targetPos = new Vector2(connection.targetNode.rect.xMin, connection.targetNode.rect.center.y); + } + + var sourcePortRect = new Rect(0, 0, 12, 12); + sourcePortRect.center = sourcePos; + + var targetPortRect = new Rect(0, 0, 15, 15); + targetPortRect.center = targetPos; + + var boundRect = RectUtils.GetBoundRect(sourcePortRect, targetPortRect); + if ( fullDrawPass || drawCanvas.Overlaps(boundRect) ) { + + if ( collapsed || connection.targetNode.isHidden ) { + continue; + } + + connection.DrawConnectionGUI(sourcePos, targetPos); + + if ( GraphEditorUtility.allowClick ) { + //On right click disconnect connection from the source. + if ( e.type == EventType.ContextClick && sourcePortRect.Contains(e.mousePosition) ) { + graph.RemoveConnection(connection); + e.Use(); + return; + } + + //On right click disconnect connection from the target. + if ( e.type == EventType.ContextClick && targetPortRect.Contains(e.mousePosition) ) { + graph.RemoveConnection(connection); + e.Use(); + return; + } + } + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Editor. When the node is picked + virtual protected void OnNodePicked() { } + ///Editor. When the node is released (mouse up) + virtual protected void OnNodeReleased() { } + ///Editor. Override to show controls within the node window + virtual protected void OnNodeGUI() { } + ///Extra GUI called outside of node window + virtual protected void OnNodeExternalGUI() { } + ///Editor. Override to show controls within the inline inspector or leave it to show an automatic editor + virtual protected void OnNodeInspectorGUI() { DrawDefaultInspector(); } + ///Editor. Override to add more entries to the right click context menu of the node + virtual protected GenericMenu OnContextMenu(GenericMenu menu) { return menu; } + + ///Get connection information node wise, to show on top of the connection + virtual public string GetConnectionInfo(int index) { return null; } + ///Extra inspector controls for the provided OUT connection + virtual public void OnConnectionInspectorGUI(int index) { } + + ///Editor. Connection Relink has started. Handle effect + virtual public void OnActiveRelinkStart(Connection connection) { } + + ///---------------------------------------------------------------------------------------------- + + } +} + +#endif diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs.meta new file mode 100644 index 0000000..e40dfde --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editor.Node.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0bcaf709a685eb942a297a24eed5dfd9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors.meta new file mode 100644 index 0000000..6372927 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6369c6934c892d34d873bd074a8977b1 +folderAsset: yes +timeCreated: 1513683248 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs new file mode 100644 index 0000000..fcada4e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs @@ -0,0 +1,196 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using System.Linq; + +namespace NodeCanvas.Editor +{ + + public static class BBParameterEditor + { + + ///An editor for BBParameter type to let user choose either a constant value or link to a Blackboard Variable. + public static BBParameter ParameterField(string name, BBParameter bbParam, UnityEngine.Object context) { + return ParameterField(name, bbParam, false, context); + } + + ///An editor for BBParameter type to let user choose either a constant value or link to a Blackboard Variable. + public static BBParameter ParameterField(string name, BBParameter bbParam, bool blackboardOnly = false, UnityEngine.Object context = null) { + var info = new InspectedFieldInfo(); + info.unityObjectContext = context; + return ParameterField(string.IsNullOrEmpty(name) ? GUIContent.none : EditorUtils.GetTempContent(name), bbParam, blackboardOnly, false, info); + } + + ///An editor for BBParameter type to let user choose either a constant value or link to a Blackboard Variable. + public static BBParameter ParameterField(GUIContent content, BBParameter bbParam, bool blackboardOnly = false, bool required = false, InspectedFieldInfo info = default(InspectedFieldInfo)) { + + if ( bbParam == null ) { + EditorGUILayout.LabelField(content, EditorUtils.GetTempContent("BBParameter is null")); + return null; + } + + //ensure we use blackboard if 'blackboardOnly' + if ( blackboardOnly && !bbParam.useBlackboard ) { + bbParam.useBlackboard = true; + } + + GUILayout.BeginVertical(); + { + GUILayout.BeginHorizontal(); + { + if ( bbParam.useBlackboard ) { + + ParameterDropDown(content, bbParam); + + } else { + + //we mutate inspected info field and parentInstance, but keep attributes and of course unity object context + //this way, attributes work on internal field + info.field = bbParam.GetType().RTGetField("_value"); + info.wrapperInstanceContext = info.parentInstanceContext; + info.parentInstanceContext = bbParam; + if ( info.attributes != null ) { + info.attributes = info.attributes.Where(a => !( a is DrawerAttribute ) || !( (DrawerAttribute)a ).isDecorator).ToArray(); + } + GUILayout.BeginVertical(); + bbParam.value = EditorUtils.ReflectedFieldInspector(content, bbParam.value, bbParam.varType, info); + GUILayout.EndVertical(); + } + + if ( !blackboardOnly ) { + bbParam.useBlackboard = EditorGUILayout.Toggle(bbParam.useBlackboard, EditorStyles.radioButton, GUILayout.Width(18)); + } + } + GUILayout.EndHorizontal(); + + + //warn/error marks + if ( content != GUIContent.none ) { + if ( bbParam.varRef == null && !string.IsNullOrEmpty(bbParam.name) ) { + if ( !bbParam.isPresumedDynamic ) { EditorUtils.MarkLastFieldError($"Missing Variable. Type of '{bbParam.varType.FriendlyName()}'"); } + if ( bbParam.isPresumedDynamic ) { EditorUtils.MarkLastFieldWarning($"Dynamic Variable. Type of '{bbParam.varType.FriendlyName()}'"); } + } else { + if ( required && bbParam.isNone ) { EditorUtils.MarkLastFieldError("An instance is required"); } + if ( required && !string.IsNullOrEmpty(bbParam.name) && !bbParam.isDefined && bbParam.isNull ) { EditorUtils.MarkLastFieldWarning("An instance is required but currently resolves to null. If it is set in runtime you can ignore this warning."); } + } + } + + + string textInfo = null; + if ( bbParam.useBlackboard ) { + if ( bbParam.bb == null ) { + textInfo = "No current Blackboard reference"; + } else + if ( bbParam.isNone ) { + textInfo = "Select a '" + bbParam.varType.FriendlyName() + "' Assignable Blackboard Variable"; + } else + if ( bbParam.varRef != null && bbParam.varType != bbParam.refType ) { + var setPossible = bbParam.varRef.CanConvertFrom(bbParam.varType); + textInfo = string.Format("AutoConvert: ({0} ➲ {1}){2}", bbParam.refType.FriendlyName(), bbParam.varType.FriendlyName(), setPossible ? string.Empty : " [GET ONLY]"); + } + } + + if ( textInfo != null ) { + GUI.color = Color.white.WithAlpha(0.5f); + GUILayout.BeginVertical(GUI.skin.textField); + GUILayout.Label(textInfo, GUILayout.Width(0), GUILayout.ExpandWidth(true)); + GUILayout.EndVertical(); + GUILayout.Space(2); + GUI.color = Color.white; + } + } + GUILayout.EndVertical(); + return bbParam; + } + + //... + static void ParameterDropDown(GUIContent content, BBParameter bbParam) { + + if ( bbParam.varRef == null && !string.IsNullOrEmpty(bbParam.name) ) { + bbParam.name = EditorGUILayout.DelayedTextField(content, bbParam.name); + GUI.backgroundColor = Color.white.WithAlpha(0.5f); + if ( bbParam.bb != null && GUILayout.Button(EditorUtils.GetTempContent(Icons.plusIcon, "Promote To Variable"), Styles.centerLabel, GUILayout.Width(18), GUILayout.Height(16)) ) { + var menu = new GenericMenu(); + foreach ( var bb in bbParam.bb.GetAllParents(true).Reverse() ) { + menu.AddItem(new GUIContent($"Promote Variable in '{bb.identifier}' Blackboard"), false, () => + { + UndoUtility.RecordObject(bb.unityContextObject, "Promote Variable"); + bbParam.PromoteToVariable(bb); + UndoUtility.SetDirty(bb.unityContextObject); + }); + } + menu.ShowAsContext(); + } + GUI.backgroundColor = Color.white; + return; + } + + GUI.color = new Color(0.9f, 0.9f, 1f, 1f); + EditorGUILayout.PrefixLabel(content); + var rect = EditorGUILayout.GetControlRect(false); + rect.xMin += 2; // O.o + var cachedContentTextForNew = string.IsNullOrEmpty(content.text) ? string.Format("new{0}", bbParam.varType.Name) : content.text; + var displayName = bbParam.isNone ? "[NONE]" : bbParam.name; + var pop = EditorGUI.DropdownButton(rect, EditorUtils.GetTempContent(displayName), FocusType.Passive); + GUI.color = Color.white; + if ( pop ) { + + var menu = new GenericMenu(); + + menu.AddItem(new GUIContent("[NONE]"), false, () => { bbParam.name = string.Empty; }); + + foreach ( var globalBB in GlobalBlackboard.GetAll() ) { + var globalVars = globalBB.GetVariables(bbParam.varType); + foreach ( var variable in globalVars ) { + menu.AddItem(new GUIContent(globalBB.identifier + "/" + variable.name), bbParam.targetVariableID == variable.ID, () => { bbParam.SetTargetVariable(globalBB, variable); }); + } + + menu.AddSeparator(globalBB.identifier + "/"); + + menu.AddItem(new GUIContent(globalBB.identifier + "/(Create New)"), false, () => + { + UndoUtility.RecordObject(( globalBB as IBlackboard ).unityContextObject, "New Variable"); + if ( globalBB.AddVariable(cachedContentTextForNew, bbParam.varType) != null ) { + bbParam.name = globalBB.identifier + "/" + cachedContentTextForNew; + } else { bbParam.name = null; } + UndoUtility.SetDirty(( globalBB as IBlackboard ).unityContextObject); + }); + + } + + if ( bbParam.bb != null ) { + foreach ( var actualBB in bbParam.bb.GetAllParents(true).Reverse() ) { + var variables = actualBB.variables.Values.Where(v => v.CanConvertTo(bbParam.varType)); + foreach ( var variable in variables ) { + menu.AddItem(new GUIContent(actualBB.identifier + "/" + variable.name), bbParam.targetVariableID == variable.ID, () => { bbParam.SetTargetVariable(actualBB, variable); }); + } + + menu.AddSeparator(actualBB.identifier + "/"); + + menu.AddItem(new GUIContent(actualBB.identifier + "/(Create New)"), false, () => + { + UndoUtility.RecordObject(actualBB.unityContextObject, "New Variable"); + if ( actualBB.AddVariable(cachedContentTextForNew, bbParam.varType) != null ) { + bbParam.name = cachedContentTextForNew; + } else { bbParam.name = null; } + UndoUtility.SetDirty(actualBB.unityContextObject); + }); + } + } + + menu.AddSeparator(string.Empty); + + menu.AddItem(new GUIContent("(DynamicVar)"), false, () => { bbParam.name = "_"; }); + + menu.DropDown(rect); + } + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs.meta new file mode 100644 index 0000000..ffab97e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BBParameterEditor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39b66ec274358e94b876d85f575ff4ae +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs new file mode 100644 index 0000000..bea5629 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs @@ -0,0 +1,484 @@ +#if UNITY_EDITOR + +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using NodeCanvas.Framework; +using NodeCanvas.Framework.Internal; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Editor +{ + + /// Editor for IBlackboards + public class BlackboardEditor : EditorObjectWrapper + { + private static readonly GUILayoutOption[] LAYOUT = new GUILayoutOption[] { GUILayout.MaxWidth(100), GUILayout.ExpandWidth(true), GUILayout.MinHeight(18) }; + + public static Variable pickedVariable { get; private set; } + public static IBlackboard pickedVariableBlackboard { get; private set; } + + private List tempVariablesList; + private IEnumerable elementDefinedParameterIDs; + + private UnityEngine.Object contextObject; + private IBlackboard bb; + + private SerializedObject serializedContext; + private SerializedProperty variablesProperty; + + private bool isPrefab => contextObject != null && PrefabUtility.IsPartOfRegularPrefab(contextObject); + + //... + protected override void OnEnable() { + GraphEditorUtility.onActiveElementChanged -= OnGraphSelectionChange; + GraphEditorUtility.onActiveElementChanged += OnGraphSelectionChange; + } + + protected override void OnDisable() { + GraphEditorUtility.onActiveElementChanged -= OnGraphSelectionChange; + } + + //... + void OnGraphSelectionChange(IGraphElement element) { + elementDefinedParameterIDs = element != null ? Graph.GetParametersInElement(element).Where(p => p != null && p.isDefined).Select(p => p.targetVariableID) : null; + } + + ///reset pick info + public static void ResetPick() { + pickedVariable = null; + pickedVariableBlackboard = null; + } + + ///Show variables inspector for target bb. Optionally provide override serialization context object + public static void ShowVariables(IBlackboard bb, UnityEngine.Object overrideContextObject = null) { + EditorWrapperFactory.GetEditor(bb).InspectorGUI(bb, overrideContextObject); + } + + ///Show variables inspector for target bb. Optionally provide override serialization context object + void InspectorGUI(IBlackboard bb, UnityEngine.Object overrideContextObject = null) { + + if ( bb.parent != null ) { + ShowVariables(bb.parent); + EditorUtils.Separator(); + } + + this.contextObject = overrideContextObject != null ? overrideContextObject : bb.unityContextObject; + this.bb = bb; + + this.variablesProperty = null; + if ( contextObject != null && PrefabUtility.IsPartOfPrefabInstance(contextObject) && bb.independantVariablesFieldName != null ) { + this.serializedContext = new SerializedObject(contextObject); + this.variablesProperty = serializedContext.FindProperty(bb.independantVariablesFieldName); + } + + + //Add variable button + GUI.backgroundColor = Colors.lightBlue; + GUI.enabled = !isPrefab; + if ( GUILayout.Button("Add Variable") ) { + GetAddVariableMenu(bb, contextObject).ShowAsBrowser("Add Variable"); + Event.current.Use(); + } + GUI.enabled = true; + GUI.backgroundColor = Color.white; + + //Simple column header info + GUILayout.Label($"▼ {bb} Blackboard Variables"); + if ( isPrefab ) { + EditorGUILayout.HelpBox("Adding, Deleting, and Re-Ordering variables is disabled for prefab instances.\nYou can however override the existing variables of the prefab asset.", MessageType.None); + } + + if ( bb.variables.Keys.Count != 0 ) { + GUILayout.BeginHorizontal(); + GUILayout.Label("Name", LAYOUT); + GUILayout.Label("Value", LAYOUT); + GUILayout.EndHorizontal(); + } else { + GUILayout.Label("___"); + } + + //temp list to work with + if ( tempVariablesList == null || !tempVariablesList.SequenceEqual(bb.variables.Values) ) { + tempVariablesList = bb.variables.Values.ToList(); + } + + //The actual variables reorderable list + var options = new EditorUtils.ReorderableListOptions(); + options.blockReorder = isPrefab; + options.unityObjectContext = contextObject; + options.customItemMenu = (i) => { return GetVariableMenu(tempVariablesList[i], i); }; + EditorUtils.ReorderableList(tempVariablesList, options, (i, isPicked) => + { + var data = tempVariablesList[i] as Variable; + if ( data == null ) { GUILayout.Label("NULL Variable!"); return; } + GUILayout.Space(data.varType == typeof(VariableSeperator) ? 5 : 0); + GUILayout.BeginHorizontal(); + DoVariableGUI(data, i, isPicked); + GUILayout.EndHorizontal(); + GUI.color = Color.white; + GUI.backgroundColor = Color.white; + if ( elementDefinedParameterIDs != null && elementDefinedParameterIDs.Contains(data.ID) ) { EditorUtils.HighlightLastField(); } + }); + + //apply temp list reconstruct the dictionary + if ( GUI.changed || Event.current.rawType == EventType.MouseUp ) { + EditorApplication.delayCall += () => { ResetPick(); }; + try { bb.variables = tempVariablesList.ToDictionary(d => d.name, d => d); } + catch { ParadoxNotion.Services.Logger.LogError("Blackboard has duplicate names!", LogTag.EDITOR, bb); } + } + } + + //... + void DoVariableGUI(Variable data, int index, bool isPicked) { + + if ( data is MissingVariableType missingVariableType ) { + GUILayout.Label(data.name, Styles.leftLabel, LAYOUT); + GUILayout.Label(ReflectionTools.FriendlyTypeName(missingVariableType.missingType).FormatError(), Styles.leftLabel, LAYOUT); + return; + } + + //Don't allow name edits in play mode. Instead show just a label + if ( Application.isPlaying ) { + if ( data.varType != typeof(VariableSeperator) ) { + GUILayout.Label(data.name, Styles.leftLabel, LAYOUT); + } else { + GUI.color = Color.yellow; + GUILayout.Label(string.Format("{0}", data.name.ToUpper()), Styles.leftLabel, LAYOUT); + GUI.color = Color.white; + } + ShowDataFieldGUI(data, index); + return; + } + + //store picks + if ( isPicked && data.varType != typeof(VariableSeperator) ) { + pickedVariable = data; + pickedVariableBlackboard = bb; + } + + //Make name field red if same name exists + if ( tempVariablesList.Where(v => v != data).Select(v => v.name).Contains(data.name) ) { + GUI.color = Color.red; + } + + ShowDataLabelGUI(data, index); + ShowDataFieldGUI(data, index); + } + + //Data label (left side) + void ShowDataLabelGUI(Variable data, int index) { + var e = Event.current; + var isVariablePrefabInstanceModified = variablesProperty != null && variablesProperty.GetArrayElementAtIndex(index).prefabOverride; + + //this is a separator + if ( data.value is VariableSeperator separator ) { + if ( !separator.isEditingName ) { + GUI.color = Color.yellow; + GUILayout.Label(string.Format("{0}", data.name.ToUpper()), Styles.leftLabel, LAYOUT); + GUI.color = Color.white; + if ( e.type == EventType.MouseDown && e.button == 0 && e.clickCount == 2 && GUILayoutUtility.GetLastRect().Contains(e.mousePosition) ) { + separator.isEditingName = true; + GUIUtility.keyboardControl = 0; + e.Use(); + } + } + + if ( separator.isEditingName ) { + var newName = EditorGUILayout.DelayedTextField(data.name, LAYOUT); + if ( data.name != newName ) { + UndoUtility.RecordObject(contextObject, "Separator Rename"); + data.name = newName; + UndoUtility.SetDirty(contextObject); + } + + if ( ( e.isKey && e.keyCode == KeyCode.Return ) || ( e.rawType == EventType.MouseUp && !GUILayoutUtility.GetLastRect().Contains(e.mousePosition) ) ) { + separator.isEditingName = false; + GUIUtility.keyboardControl = 0; + e.Use(); + } + } + + } else { + + //not a separator + var wasFontStyle = GUI.skin.textField.fontStyle; + GUI.skin.textField.fontStyle = isVariablePrefabInstanceModified ? FontStyle.Bold : FontStyle.Normal; + var newName = EditorGUILayout.DelayedTextField(data.name, LAYOUT); + if ( data.name != newName ) { + UndoUtility.RecordObject(contextObject, "Variable Name Change"); + data.name = newName; + UndoUtility.SetDirty(contextObject); + } + + GUI.skin.textField.fontStyle = wasFontStyle; + EditorGUI.indentLevel = 0; + } + + //show a prefab override marker on the left side + if ( isVariablePrefabInstanceModified ) { + EditorUtils.MarkLastFieldOverride(); + } + + } + + //show variable data + void ShowDataFieldGUI(Variable data, int index) { + //Prop Bind info + if ( data.isPropertyBound ) { + var idx = data.propertyPath.LastIndexOf('.'); + var typeName = data.propertyPath.Substring(0, idx); + var memberName = data.propertyPath.Substring(idx + 1); + GUI.color = new Color(0.8f, 0.8f, 1); + var suf = data.debugBoundValue && Application.isPlaying ? data.value.ToStringAdvanced() : typeName.Split('.').Last(); + GUILayout.Label(string.Format(".{0} ({1}) {2}", memberName, suf, data.debugBoundValue ? "*" : string.Empty), Styles.leftLabel, LAYOUT); + GUI.color = Color.white; + return; + } + + GUI.color = data.isExposedPublic ? GUI.color.WithAlpha(0.5f) : GUI.color; + EditorGUIUtility.labelWidth = 10; + var newVal = VariableField(data, contextObject, LAYOUT); + EditorGUIUtility.labelWidth = 0; + if ( !Equals(data.value, newVal) ) { + UndoUtility.RecordObject(contextObject, "Variable Value Change"); + data.value = newVal; + UndoUtility.SetDirty(contextObject); + } + GUI.color = Color.white; + } + + ///Return get add variable menu + GenericMenu GetAddVariableMenu(IBlackboard bb, UnityEngine.Object contextParent) { + void AddNewVariable(System.Type t) { + UndoUtility.RecordObject(contextParent, "Variable Added"); + var name = "my" + t.FriendlyName(); + while ( bb.GetVariable(name) != null ) { + name += "."; + } + bb.AddVariable(name, t); + UndoUtility.SetDirty(contextParent); + } + + void AddBoundProp(PropertyInfo p) { + UndoUtility.RecordObject(contextParent, "Variable Added"); + var newVar = bb.AddVariable(p.Name, p.PropertyType); + newVar.BindProperty(p); + UndoUtility.SetDirty(contextParent); + } + + void AddBoundField(FieldInfo f) { + UndoUtility.RecordObject(contextParent, "Variable Added"); + var newVar = bb.AddVariable(f.Name, f.FieldType); + newVar.BindProperty(f); + UndoUtility.SetDirty(contextParent); + } + + void AddSeparator() { + UndoUtility.RecordObject(contextParent, "Separator Added"); + bb.AddVariable("Separator (Double Click To Rename)", new VariableSeperator()); + UndoUtility.SetDirty(contextParent); + } + + var menu = new GenericMenu(); + menu = EditorUtils.GetPreferedTypesSelectionMenu(typeof(object), AddNewVariable, menu, "New", true); + + if ( bb.propertiesBindTarget != null ) { + foreach ( var comp in bb.propertiesBindTarget.GetComponents(typeof(Component)).Where(c => c.hideFlags == 0) ) { + menu = EditorUtils.GetInstanceFieldSelectionMenu(comp.GetType(), typeof(object), AddBoundField, menu, "Bound (Self)"); + menu = EditorUtils.GetInstancePropertySelectionMenu(comp.GetType(), typeof(object), AddBoundProp, false, false, menu, "Bound (Self)"); + } + menu.AddSeparator("Bound (Self)/"); + } + foreach ( var type in TypePrefs.GetPreferedTypesList() ) { + if ( bb.propertiesBindTarget != null && typeof(UnityEngine.Component).RTIsAssignableFrom(type) ) { + menu = EditorUtils.GetInstanceFieldSelectionMenu(type, typeof(object), AddBoundField, menu, "Bound (Self)"); + menu = EditorUtils.GetInstancePropertySelectionMenu(type, typeof(object), AddBoundProp, false, false, menu, "Bound (Self)"); + } + menu = EditorUtils.GetStaticFieldSelectionMenu(type, typeof(object), AddBoundField, menu, "Bound (Static)"); + menu = EditorUtils.GetStaticPropertySelectionMenu(type, typeof(object), AddBoundProp, false, false, menu, "Bound (Static)"); + } + + menu.AddSeparator("/"); + menu.AddItem(new GUIContent("Add Header Separator"), false, () => { AddSeparator(); }); + return menu; + } + + ///Get a menu for variable + GenericMenu GetVariableMenu(Variable data, int index) { + var menu = new GenericMenu(); + if ( data.varType == typeof(VariableSeperator) ) { + menu.AddItem(new GUIContent("Rename"), false, () => { ( data.value as VariableSeperator ).isEditingName = true; }); + if ( isPrefab ) { + menu.AddDisabledItem(new GUIContent("Remove")); + } else { + menu.AddItem(new GUIContent("Remove"), false, () => + { + UndoUtility.RecordObject(contextObject, "Remove Variable"); + bb.RemoveVariable(data.name); + UndoUtility.SetDirty(contextObject); + }); + } + return menu; + } + + void BindProp(PropertyInfo p) { + UndoUtility.RecordObject(contextObject, "Bind Variable"); + data.BindProperty(p); + UndoUtility.SetDirty(contextObject); + } + void BindField(FieldInfo f) { + UndoUtility.RecordObject(contextObject, "Bind Variable"); + data.BindProperty(f); + UndoUtility.SetDirty(contextObject); + } + + menu.AddDisabledItem(new GUIContent(string.Format("Type: {0}", data.varType.FriendlyName()))); + + if ( bb.propertiesBindTarget != null ) { + foreach ( var comp in bb.propertiesBindTarget.GetComponents(typeof(Component)).Where(c => c != null) ) { + menu = EditorUtils.GetInstanceFieldSelectionMenu(comp.GetType(), data.varType, BindField, menu, "Bind (Self)"); + menu = EditorUtils.GetInstancePropertySelectionMenu(comp.GetType(), data.varType, BindProp, false, false, menu, "Bind (Self)"); + } + menu.AddSeparator("Bind (Self)/"); + } + foreach ( var type in TypePrefs.GetPreferedTypesList() ) { + if ( bb.propertiesBindTarget != null && typeof(UnityEngine.Component).RTIsAssignableFrom(type) ) { + menu = EditorUtils.GetInstanceFieldSelectionMenu(type, typeof(object), BindField, menu, "Bind (Self)"); + menu = EditorUtils.GetInstancePropertySelectionMenu(type, typeof(object), BindProp, false, false, menu, "Bind (Self)"); + } + menu = EditorUtils.GetStaticFieldSelectionMenu(type, data.varType, BindField, menu, "Bind (Static)"); + menu = EditorUtils.GetStaticPropertySelectionMenu(type, data.varType, BindProp, false, false, menu, "Bind (Static)"); + } + + if ( isPrefab ) { + menu.AddDisabledItem(new GUIContent("Duplicate")); + } else { + menu.AddItem(new GUIContent("Duplicate"), false, () => + { + UndoUtility.RecordObject(contextObject, "Duplicate Variable"); + data.Duplicate(bb); + UndoUtility.SetDirty(contextObject); + }); + } + + if ( bb is BlackboardSource ) { //TODO: avoid this check + if ( !data.isPropertyBound ) { + menu.AddItem(new GUIContent("Exposed Public"), data.isExposedPublic, () => + { + UndoUtility.RecordObject(contextObject, "Modify Variable"); + data.isExposedPublic = !data.isExposedPublic; + UndoUtility.SetDirty(contextObject); + }); + } else { menu.AddDisabledItem(new GUIContent("Bound Variables Can't Be Exposed")); } + } + + menu.AddSeparator("/"); + if ( data.isPropertyBound ) { + menu.AddItem(new GUIContent("Runtime Debug Bound Value"), data.debugBoundValue, () => + { + UndoUtility.RecordObject(contextObject, "Debug Bound Variable Value"); + data.debugBoundValue = !data.debugBoundValue; + UndoUtility.SetDirty(contextObject); + }); + + menu.AddItem(new GUIContent("UnBind"), false, () => + { + UndoUtility.RecordObject(contextObject, "UnBind Variable"); + data.UnBind(); + UndoUtility.SetDirty(contextObject); + }); + } else { + menu.AddDisabledItem(new GUIContent("UnBind")); + } + + + var serProp = variablesProperty?.GetArrayElementAtIndex(index); + if ( serProp != null && serProp.prefabOverride ) { + var prefabAssetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(contextObject); + var asset = AssetDatabase.LoadAssetAtPath(prefabAssetPath); + menu.AddItem(new GUIContent("Apply Prefab Modification To '" + asset.name + "'"), false, () => + { + UndoUtility.RecordObject(asset, "Apply Variable To Prefab"); + UndoUtility.RecordObject(contextObject, "Apply Variable To Prefab"); + PrefabUtility.ApplyPropertyOverride(serProp, prefabAssetPath, InteractionMode.UserAction); + UndoUtility.SetDirty(contextObject); + UndoUtility.SetDirty(asset); + }); + + menu.AddItem(new GUIContent("Revert Prefab Modification"), false, () => + { + UndoUtility.RecordObject(contextObject, "Revert Variable From Prefab"); + PrefabUtility.RevertPropertyOverride(serProp, InteractionMode.UserAction); + UndoUtility.SetDirty(contextObject); + }); + } + + void ChangeType(System.Type t) { + UndoUtility.RecordObject(contextObject, "Change Variable Type"); + bb.ChangeVariableType(data, t); + UndoUtility.SetDirty(contextObject); + } + + menu = EditorUtils.GetPreferedTypesSelectionMenu(typeof(object), ChangeType, menu, "Change Type"); + + if ( isPrefab ) { + menu.AddDisabledItem(new GUIContent("Delete Variable")); + } else { + menu.AddItem(new GUIContent("Delete Variable"), false, () => + { + if ( EditorUtility.DisplayDialog("Delete Variable '" + data.name + "'", "Are you sure?", "Yes", "No") ) { + UndoUtility.RecordObject(contextObject, "Delete Variable"); + bb.RemoveVariable(data.name); + GUIUtility.hotControl = 0; + GUIUtility.keyboardControl = 0; + UndoUtility.SetDirty(contextObject); + } + }); + } + + return menu; + } + + //the variable data field + object VariableField(Variable data, UnityEngine.Object contextParent, GUILayoutOption[] layoutOptions) { + + var o = data.value; + var t = data.varType; + + if ( t == typeof(VariableSeperator) ) { + GUILayout.Space(0); + return o; + } + + //allow creation of derived classes for abstract classes via button + if ( o == null && t.IsAbstract && !typeof(UnityEngine.Object).IsAssignableFrom(t) && !t.IsInterface && t != typeof(System.Type) ) { + if ( GUILayout.Button("(null) Create", layoutOptions) ) { + EditorUtils.GetTypeSelectionMenu(t, (derived) => { data.value = System.Activator.CreateInstance(derived); }).ShowAsBrowser("Select Derived Type"); + } + return o; + } + + ///---------------------------------------------------------------------------------------------- + o = EditorUtils.DirectFieldControl(GUIContent.none, o, t, contextParent, null, out bool handled, layoutOptions); + if ( handled ) { return o; } + ///---------------------------------------------------------------------------------------------- + + //If some other type, show it in the generic object editor window with its true value type + t = o != null ? o.GetType() : t; + if ( GUILayout.Button(string.Format("{0} {1}", t.FriendlyName(), ( o is IList list ) ? list.Count.ToString() : string.Empty), layoutOptions) ) { + //we use bb.GetVariableByID to avoid undo creating new instance of variable, and thus generic inspector left inspecting something else + GenericInspectorWindow.Show(data.name, t, contextParent, () => { return bb.GetVariableByID(data.ID).value; }, (newValue) => { bb.GetVariableByID(data.ID).value = newValue; }); + } + + return o; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs.meta new file mode 100644 index 0000000..7b7ee91 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/BlackboardEditor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da359895a5f62994d820daa97a57fb8b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs new file mode 100644 index 0000000..cde95aa --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs @@ -0,0 +1,327 @@ +#if UNITY_EDITOR + +using System; +using UnityEngine; +using UnityEditor; +using ParadoxNotion; +using ParadoxNotion.Design; +using NodeCanvas.Framework; +using NodeCanvas.Framework.Internal; +using System.Linq; + +namespace NodeCanvas.Editor +{ + + public class TaskEditor : EditorObjectWrapper + { + + private bool isUnfolded = true; + private EditorPropertyWrapper agentParameterProp; + private EditorMethodWrapper onTaskInspectorGUI; + + private Task task { get { return target; } } + + protected override void OnEnable() { + agentParameterProp = CreatePropertyWrapper("_agentParameter"); + onTaskInspectorGUI = CreateMethodWrapper("OnTaskInspectorGUI"); + } + + ///---------------------------------------------------------------------------------------------- + + ///Show a Task's field without ability to add if null or add multiple tasks to form a list. + public static void TaskFieldSingle(Task task, Action callback, bool showTitlebar = true) { + if ( task != null ) { ShowTaskInspectorGUI(task, callback, showTitlebar); } + } + + ///Show a Task's field. If task null allow add task. Multiple tasks can be added to form a list. + public static void TaskFieldMulti(T task, ITaskSystem ownerSystem, Action callback) where T : Task { + TaskFieldMulti(task, ownerSystem, typeof(T), (Task t) => { callback((T)t); }); + } + + ///Show a Task's field. If task null allow add task. Multiple tasks can be added to form a list. + public static void TaskFieldMulti(Task task, ITaskSystem ownerSystem, Type baseType, Action callback) { + //if null simply show an assignment button + if ( task == null ) { + ShowCreateTaskSelectionButton(ownerSystem, baseType, callback); + return; + } + + //Handle Action/ActionLists so that in GUI level a list is used only when needed + if ( baseType == typeof(ActionTask) ) { + if ( !( task is ActionList ) ) { + ShowCreateTaskSelectionButton(ownerSystem, baseType, (t) => + { + var newList = Task.Create(ownerSystem); + UndoUtility.RecordObject(ownerSystem.contextObject, "New Action Task"); + newList.AddAction((ActionTask)task); + newList.AddAction((ActionTask)t); + callback(newList); + }); + } + + ShowTaskInspectorGUI(task, callback); + + if ( task is ActionList ) { + var list = (ActionList)task; + if ( list.actions.Count == 1 ) { + list.actions[0].isUserEnabled = true; + callback(list.actions[0]); + } + } + return; + } + + //Handle Condition/ConditionLists so that in GUI level a list is used only when needed + if ( baseType == typeof(ConditionTask) ) { + if ( !( task is ConditionList ) ) { + ShowCreateTaskSelectionButton(ownerSystem, baseType, (t) => + { + var newList = Task.Create(ownerSystem); + UndoUtility.RecordObject(ownerSystem.contextObject, "New Condition Task"); + newList.AddCondition((ConditionTask)task); + newList.AddCondition((ConditionTask)t); + callback(newList); + }); + } + + ShowTaskInspectorGUI(task, callback); + + if ( task is ConditionList ) { + var list = (ConditionList)task; + if ( list.conditions.Count == 1 ) { + list.conditions[0].isUserEnabled = true; + callback(list.conditions[0]); + } + } + return; + } + + //in all other cases where the base type is not a base ActionTask or ConditionTask, + //(thus lists can't be used unless the base type IS a list), simple show the inspector. + ShowTaskInspectorGUI(task, callback); + } + + ///Show the editor inspector of target task + static void ShowTaskInspectorGUI(Task task, Action callback, bool showTitlebar = true) { + EditorWrapperFactory.GetEditor(task).ShowInspector(callback, showTitlebar); + } + + //Shows a button that when clicked, pops a context menu with a list of tasks deriving the base type specified. When something is selected the callback is called + public static void ShowCreateTaskSelectionButton(ITaskSystem ownerSystem, Action callback) where T : Task { + ShowCreateTaskSelectionButton(ownerSystem, typeof(T), (Task t) => { callback((T)t); }); + } + + //Shows a button that when clicked, pops a context menu with a list of tasks deriving the base type specified. When something is selected the callback is called + //On top of that it also shows a search field for Tasks + public static void ShowCreateTaskSelectionButton(ITaskSystem ownerSystem, Type baseType, Action callback) { + + GUI.backgroundColor = Colors.lightBlue; + var label = "Assign " + baseType.Name.SplitCamelCase(); + if ( GUILayout.Button(label) ) { + + Action TaskTypeSelected = (t) => + { + var newTask = Task.Create(t, ownerSystem); + UndoUtility.RecordObject(ownerSystem.contextObject, "New Task"); + callback(newTask); + }; + + var menu = EditorUtils.GetTypeSelectionMenu(baseType, TaskTypeSelected); + if ( CopyBuffer.TryGetCache(out Task copy) && baseType.IsAssignableFrom(copy.GetType()) ) { + menu.AddSeparator("/"); + menu.AddItem(new GUIContent(string.Format("Paste ({0})", copy.name)), false, () => { callback(copy.Duplicate(ownerSystem)); }); + } + menu.ShowAsBrowser(label, typeof(Task)); + } + + GUILayout.Space(2); + GUI.backgroundColor = Color.white; + } + + + ///---------------------------------------------------------------------------------------------- + + + //Draw the task inspector GUI + void ShowInspector(Action callback, bool showTitlebar = true) { + if ( task.ownerSystem == null ) { + GUILayout.Label("Owner System is null! This should really not happen but it did!\nPlease report a bug. Thank you :)"); + return; + } + + //make sure TaskAgent is not null in case task defines an AgentType + if ( task.agentIsOverride && agentParameterProp.value == null ) { + agentParameterProp.value = new TaskAgentParameter(); + } + + if ( task.obsolete != string.Empty ) { + EditorGUILayout.HelpBox(string.Format("This is an obsolete Task:\n\"{0}\"", task.obsolete), MessageType.Warning); + } + + if ( !showTitlebar || ShowTitlebar(callback) == true ) { + + if ( !string.IsNullOrEmpty(task.description) ) { + EditorGUILayout.HelpBox(task.description, MessageType.None); + } + + UndoUtility.CheckUndo(task.ownerSystem.contextObject, "Task Inspector"); + + SpecialCaseInspector(); + ShowAgentField(); + onTaskInspectorGUI.Invoke(); + + UndoUtility.CheckDirty(task.ownerSystem.contextObject); + if ( GUI.changed ) { task.OnValidate(task.ownerSystem); } + } + } + + //Some special cases for Action & Condition. A bit weird but better than creating a virtual method in this case + void SpecialCaseInspector() { + + if ( task is ActionTask ) { + if ( Application.isPlaying ) { + if ( ( task as ActionTask ).elapsedTime > 0 ) GUI.color = Color.yellow; + EditorGUILayout.LabelField("Elapsed Time", ( task as ActionTask ).elapsedTime.ToString()); + GUI.color = Color.white; + } + } + + if ( task is ConditionTask ) { + GUI.color = ( task as ConditionTask ).invert ? Color.white : Color.white.WithAlpha(0.5f); + ( task as ConditionTask ).invert = EditorGUILayout.ToggleLeft("Invert Condition", ( task as ConditionTask ).invert); + GUI.color = Color.white; + } + } + + //a Custom titlebar for tasks + bool ShowTitlebar(Action callback) { + + GUI.backgroundColor = EditorGUIUtility.isProSkin ? Color.black.WithAlpha(0.3f) : Color.white.WithAlpha(0.5f); + GUILayout.BeginHorizontal(GUI.skin.box); + { + GUI.backgroundColor = Color.white; + GUILayout.Label("" + ( isUnfolded ? "▼ " : "► " ) + task.name + "" + ( isUnfolded ? "" : "\n(" + task.summaryInfo + ")" ), Styles.leftLabel); + + var taskType = task.GetType(); + if ( taskType.IsGenericType ) { + var isBase = taskType.GetFirstGenericParameterConstraintType() == taskType.GetSingleGenericArgument(); + if ( isBase && GUILayout.Button(StyleSheet.genericType, GUI.skin.label, GUILayout.Width(20), GUILayout.Height(20)) ) { + var menu = new GenericMenu(); + menu = EditorUtils.GetPreferedTypesSelectionMenu(taskType.GetGenericTypeDefinition(), (t) => { callback(Task.Create(t, task.ownerSystem)); }, menu, "Set Generic Type"); + menu.ShowAsContext(); + } + } + + if ( GUILayout.Button(Icons.csIcon, GUI.skin.label, GUILayout.Width(20), GUILayout.Height(20)) ) { + EditorUtils.OpenScriptOfType(task.GetType()); + } + + GUI.color = EditorGUIUtility.isProSkin ? Color.white : Color.grey; + if ( GUILayout.Button(Icons.gearPopupIcon, Styles.centerLabel, GUILayout.Width(20), GUILayout.Height(20)) ) { + GetMenu(callback).ShowAsContext(); + } + GUI.color = Color.white; + } + GUILayout.EndHorizontal(); + + var titleRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(titleRect, MouseCursor.Link); + GUI.color = Color.black.WithAlpha(0.25f); + GUI.DrawTexture(new Rect(titleRect.x, titleRect.yMax - 1, titleRect.width, 1), Texture2D.whiteTexture); + GUI.color = Color.white; + + var e = Event.current; + if ( e.type == EventType.ContextClick && titleRect.Contains(e.mousePosition) ) { + GetMenu(callback).ShowAsContext(); + e.Use(); + } + + if ( e.button == 0 && e.type == EventType.MouseUp && titleRect.Contains(e.mousePosition) ) { + isUnfolded = !isUnfolded; + e.Use(); + } + + return isUnfolded; + } + + ///Generate and return task menu + GenericMenu GetMenu(Action callback) { + var menu = new GenericMenu(); + var taskType = task.GetType(); + menu.AddItem(new GUIContent("Open Script"), false, () => { EditorUtils.OpenScriptOfType(taskType); }); + menu.AddItem(new GUIContent("Copy"), false, () => { CopyBuffer.SetCache(task); }); + + foreach ( var _m in taskType.RTGetMethods() ) { + var m = _m; + var att = m.RTGetAttribute(true); + if ( att != null ) { + menu.AddItem(new GUIContent(att.menuItem), false, () => { m.Invoke(task, null); }); + } + } + + if ( taskType.IsGenericType ) { + menu = EditorUtils.GetPreferedTypesSelectionMenu(taskType.GetGenericTypeDefinition(), (t) => { callback(Task.Create(t, task.ownerSystem)); }, menu, "Change Generic Type"); + } + + menu.AddSeparator("/"); + + menu.AddItem(new GUIContent("Delete"), false, () => + { + if ( callback != null ) { + UndoUtility.RecordObject(task.ownerSystem.contextObject, "Delete Task"); + callback(null); + } + }); + + return menu; + } + + //Shows the agent field in case an agent type is specified through the use of the generic versions of Action or Condition Task + void ShowAgentField() { + + if ( task.agentType == null ) { + return; + } + + TaskAgentParameter agentParam = agentParameterProp.value; + + if ( Application.isPlaying && task.agentIsOverride && agentParam.value == null ) { + GUILayout.Label("Missing Agent Reference".FormatError()); + return; + } + + GUI.color = Color.white.WithAlpha(task.agentIsOverride ? 0.65f : 0.5f); + GUILayout.BeginVertical(GUI.skin.box); + GUILayout.BeginHorizontal(); + + if ( task.agentIsOverride ) { + + BBParameterEditor.ParameterField(null, agentParam, task.ownerSystem.contextObject); + + } else { + + var compInfo = task.agent == null ? task.agentType.FriendlyName().FormatError() : task.agentType.FriendlyName(); + var icon = TypePrefs.GetTypeIcon(task.agentType); + var label = string.Format("Use Self ({0})", compInfo); + var content = EditorUtils.GetTempContent(label, icon); + GUILayout.Label(content, GUILayout.Height(18), GUILayout.Width(0), GUILayout.ExpandWidth(true)); + } + + GUI.color = Color.white; + + if ( !Application.isPlaying ) { + var newOverride = EditorGUILayout.Toggle(task.agentIsOverride, GUILayout.Width(18)); + if ( newOverride != task.agentIsOverride ) { + UndoUtility.RecordObject(task.ownerSystem.contextObject, "Override Agent"); + task.agentIsOverride = newOverride; + } + } + + GUILayout.EndHorizontal(); + GUILayout.EndVertical(); + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs.meta new file mode 100644 index 0000000..4218be5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Editors/TaskEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb567bf834a033d42aa5c9c8d18cbc7d +timeCreated: 1510981549 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs new file mode 100644 index 0000000..0cf7af1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs @@ -0,0 +1,199 @@ +#if UNITY_EDITOR + +using System; +using System.Linq; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using ParadoxNotion.Design; + +namespace NodeCanvas.Editor +{ + + //To let the editor interop with other things + public static class GraphEditorUtility + { + + public static bool allowClick = true; + public static Vector2 realMousePosition { get; set; } + public static int lastNodeID { get; private set; } + public static int lastConnectionID { get; private set; } + public static event System.Action PostGUI; + public static event System.Action onActiveElementChanged; + private static WeakReference _activeElement = new WeakReference(null); + private static WeakReferenceList _activeElements = new WeakReferenceList(); + + ///---------------------------------------------------------------------------------------------- + + //Invoke PostGUI + public static void InvokePostGUI() { + if ( PostGUI != null ) { + PostGUI(); + PostGUI = null; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Selected Node or Connection + public static IGraphElement activeElement { + get + { + if ( activeElements.Count > 1 ) { return null; } + if ( activeElements.Count == 1 ) { return activeElements[0]; } + _activeElement.TryGetTarget(out IGraphElement reference); + return reference; + } + set + { + GUIUtility.keyboardControl = 0; + if ( !activeElements.Contains(value) || value == null ) { + _activeElements.Clear(); + } + _activeElement.TryGetTarget(out IGraphElement reference); + if ( reference != value && activeElements.Count == 0 ) { + _activeElement.SetTarget(value); + lastNodeID = -1; + lastConnectionID = -1; + if ( value is Node ) { + lastNodeID = ( value as Node ).ID; + } + if ( value is Connection ) { + lastNodeID = ( value as Connection ).sourceNode.ID; + lastConnectionID = ( value as Connection ).sourceNode.outConnections.IndexOf(value as Connection); + } + UnityEditor.SceneView.RepaintAll(); + if ( onActiveElementChanged != null ) { + onActiveElementChanged(value); + } + } + } + } + + ///multiple selected Node or Connection + public static List activeElements { + get { return _activeElements.ToReferenceList(); } + set + { + GUIUtility.keyboardControl = 0; + if ( value != null && value.Count == 1 ) { + activeElement = value[0]; + value.Clear(); + } + _activeElements = value != null ? value : new List(); + } + } + + ///Selected Node if any + public static Node activeNode { + get { return activeElement as Node; } + } + + ///Selected Connection if any + public static Connection activeConnection { + get { return activeElement as Connection; } + } + + ///---------------------------------------------------------------------------------------------- + + ///Adds an element to active elements + public static void AddActiveElement(IGraphElement e) { + _activeElements.Add(e); + } + + ///Removes and element from active elements + public static void RemoveActiveElement(IGraphElement e) { + _activeElements.Remove(e); + } + + ///---------------------------------------------------------------------------------------------- + + //Find nodes of type (T) having the [DropReferenceType] attribute pointing to target unity object type + public static IEnumerable GetDropedReferenceNodeTypes(UnityEngine.Object obj) where T : IGraphElement { + var targetType = obj.GetType(); + foreach ( var type in ReflectionTools.GetImplementationsOf(typeof(T)) ) { + var att = type.RTGetAttribute(true); + if ( att != null && att.type == targetType ) { + yield return type; + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns the extension at which the graph will be saved with if exported to JSON + public static string GetGraphJSONFileExtension(this Graph graph) { + return graph.GetType().Name.GetCapitals(); + } + + ///Returns the selected nodes if any or all graph nodes + public static IEnumerable GetSelectedOrAll(this Graph graph) { + if ( activeNode != null ) { return new Node[] { activeNode }; } + if ( activeElements.Count > 0 ) { return activeElements.OfType(); } + return graph.allNodes; + } + + ///Scans the graph for structs and append them in preferred types. Prompts user for confirm. + public static void ScanForStructTypesAndAppendThem(Graph graph) { + + var serializedTypes = new List(); + JSONSerializer.SerializeAndExecuteNoCycles(typeof(NodeCanvas.Framework.Internal.GraphSource), graph.GetGraphSource(), (o, d) => + { + if ( o != null ) { serializedTypes.Add(o.GetType()); } + }); + + serializedTypes = serializedTypes.Concat(serializedTypes.Where(t => t.IsGenericType).Select(t => t.RTGetGenericArguments().First())).ToList(); + + var preferredTypes = TypePrefs.GetPreferedTypesList(); + var resultTypes = new List(); + for ( var i = 0; i < serializedTypes.Count; i++ ) { + var t = serializedTypes[i]; + if ( preferredTypes.Contains(t) ) { continue; } + if ( resultTypes.Contains(t) ) { continue; } + if ( t.IsValueType ) { resultTypes.Add(t); } + } + if ( resultTypes.Count == 0 ) { + EditorUtility.DisplayDialog("Scan Results:", "All found struct types serialized in the graph are already in your Preferred Types list.", "OK"); + return; + } + var userInfo = string.Join("\n", resultTypes.OrderBy(t => t.Namespace).ThenBy(t => t.Name).Select(t => t.FriendlyName())); + userInfo = "The following struct types serialized in the graph were found that are not already in your Preferred Types List\n\n\n----\n" + userInfo + "\n----\n\n\nAdd them in your Preferred Types List?"; + if ( EditorUtility.DisplayDialog("Scan Results:", userInfo, "Add Them", "Cancel") ) { + TypePrefs.SetPreferedTypesList(preferredTypes.Union(resultTypes).ToList()); + } + } + + ///Make a deep copy of provided graph asset along with it's sub-graphs. + public static Graph DeepCopy(Graph root) { + if ( root == null ) { + return null; + } + + var path = EditorUtility.SaveFilePanelInProject("Copy of " + root.name, root.name + "_duplicate.asset", "asset", string.Empty); + if ( string.IsNullOrEmpty(path) ) { + return null; + } + + var copy = (Graph)ScriptableObject.CreateInstance(root.GetType()); + AssetDatabase.CreateAsset(copy, path); + EditorUtility.CopySerialized(root, copy); + + //make use of IGraphAssignable interface to find nodes that represent a sub-graph. + foreach ( var subGraphNode in copy.allNodes.OfType() ) { + if ( subGraphNode.subGraph != null ) { + //duplicate the existing sub-graph and assign the copy to node. + subGraphNode.subGraph = DeepCopy(subGraphNode.subGraph); + } + } + + copy.Validate(); + AssetDatabase.SaveAssets(); + return copy; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs.meta new file mode 100644 index 0000000..506b7c2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/GraphEditorUtility.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5521b496ff919304ea2009297fd9d4d2 +timeCreated: 1511254430 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs new file mode 100644 index 0000000..b21d244 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs @@ -0,0 +1,244 @@ +#if UNITY_EDITOR + +using UnityEditor; +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Editor +{ + + ///NC framework preferences + public static partial class Prefs + { + + private const string PREFS_KEY_NAME = "NodeCanvas.EditorPreferences"; + + [System.Serializable] + partial class SerializedData + { + public bool isEditorLocked = false; + + public bool useExternalInspector = false; + public bool showBlackboard = true; + public bool showNodePanel = true; + public float inspectorPanelWidth = 330; + public float blackboardPanelWidth = 350; + public bool hideWelcomeWindow = false; + + public bool showTaskSummary = true; + public bool showComments = true; + public bool showNodeIDs = false; + public bool showNodeElapsedTimes = false; + public bool showHierarchyIcons = true; + public bool showGrid = true; + public bool snapToGrid = false; + public bool logEventsInfo = true; + public bool logVariablesInfo = true; + public bool animatePanels = true; + public float connectionsMLT = 0.8f; + + public bool hierarchicalMove = false; + public bool breakpointPauseEditor = true; + public bool collapseGenericTypes = false; + + public bool consoleLogInfo = true; + public bool consoleLogWarning = true; + public bool consoleLogError = true; + public bool consoleClearOnPlay = true; + public ConsoleLogOrder consoleLogOrder = ConsoleLogOrder.Ascending; + public bool explorerShowTypeNames = true; + public float minimapSizeY = 100f; + } + + private static SerializedData _data; + private static SerializedData data { + get + { + if ( _data == null ) { _data = new SerializedData(); } + return _data; + } + } + + [InitializeOnLoadMethod] + static void LoadData() { + var pref = EditorPrefs.GetString(PREFS_KEY_NAME); + if ( !string.IsNullOrEmpty(pref) ) { _data = JSONSerializer.Deserialize(pref); } + if ( _data == null ) { _data = new SerializedData(); } + } + + ///---------------------------------------------------------------------------------------------- + + public const float MINIMAP_MIN_SIZE = 30; + public const float MINIMAP_MAX_SIZE = 300; + + ///---------------------------------------------------------------------------------------------- + + public enum ConsoleLogOrder + { + Ascending, + Descending + } + + public static bool isEditorLocked { + get { return data.isEditorLocked; } + set { if ( data.isEditorLocked != value ) { data.isEditorLocked = value; Save(); } } + } + + public static bool showBlackboard { + get { return data.showBlackboard; } + set { if ( data.showBlackboard != value ) { data.showBlackboard = value; Save(); } } + } + + public static bool showNodePanel { + get { return data.showNodePanel; } + set { if ( data.showNodePanel != value ) { data.showNodePanel = value; Save(); } } + } + + public static bool showTaskSummary { + get { return data.showTaskSummary; } + set { if ( data.showTaskSummary != value ) { data.showTaskSummary = value; Save(); } } + } + + public static bool showComments { + get { return data.showComments; } + set { if ( data.showComments != value ) { data.showComments = value; Save(); } } + } + + public static bool showNodeIDs { + get { return data.showNodeIDs; } + set { if ( data.showNodeIDs != value ) { data.showNodeIDs = value; Save(); } } + } + + public static bool showNodeElapsedTimes { + get { return data.showNodeElapsedTimes; } + set { if ( data.showNodeElapsedTimes != value ) { data.showNodeElapsedTimes = value; Save(); } } + } + + public static bool showGrid { + get { return data.showGrid; } + set { if ( data.showGrid != value ) { data.showGrid = value; Save(); } } + } + + public static bool snapToGrid { + get { return data.snapToGrid; } + set { if ( data.snapToGrid != value ) { data.snapToGrid = value; Save(); } } + } + + public static bool hierarchicalMove { + get { return data.hierarchicalMove; } + set { if ( data.hierarchicalMove != value ) { data.hierarchicalMove = value; Save(); } } + } + + public static bool useExternalInspector { + get { return data.useExternalInspector; } + set { if ( data.useExternalInspector != value ) { data.useExternalInspector = value; Save(); } } + } + + public static bool hideWelcomeWindow { + get { return data.hideWelcomeWindow; } + set { if ( data.hideWelcomeWindow != value ) { data.hideWelcomeWindow = value; Save(); } } + } + + public static bool logEventsInfo { + get { return data.logEventsInfo; } + set { if ( data.logEventsInfo != value ) { data.logEventsInfo = value; Save(); } } + } + + public static bool logVariablesInfo { + get { return data.logVariablesInfo; } + set { if ( data.logVariablesInfo != value ) { data.logVariablesInfo = value; Save(); } } + } + + public static bool showHierarchyIcons { + get { return data.showHierarchyIcons; } + set { if ( data.showHierarchyIcons != value ) { data.showHierarchyIcons = value; Save(); } } + } + + public static bool breakpointPauseEditor { + get { return data.breakpointPauseEditor; } + set { if ( data.breakpointPauseEditor != value ) { data.breakpointPauseEditor = value; Save(); } } + } + + public static bool collapseGenericTypes { + get { return data.collapseGenericTypes; } + set { if ( data.collapseGenericTypes != value ) { data.collapseGenericTypes = value; ParadoxNotion.Design.EditorUtils.FlushScriptInfos(); Save(); } } + } + + ///---------------------------------------------------------------------------------------------- + + public static float inspectorPanelWidth { + get { return data.inspectorPanelWidth; } + set { if ( data.inspectorPanelWidth != value ) { data.inspectorPanelWidth = UnityEngine.Mathf.Clamp(value, 300, 600); Save(); } } + } + + public static float blackboardPanelWidth { + get { return data.blackboardPanelWidth; } + set { if ( data.blackboardPanelWidth != value ) { data.blackboardPanelWidth = UnityEngine.Mathf.Clamp(value, 300, 600); Save(); } } + } + + public static bool animatePanels { + get { return data.animatePanels; } + set { if ( data.animatePanels != value ) { data.animatePanels = value; Save(); } } + } + + public static float connectionsMLT { + get { return data.connectionsMLT; } + set { if ( data.connectionsMLT != value ) { data.connectionsMLT = value; Save(); } } + } + + ///---------------------------------------------------------------------------------------------- + + public static bool consoleLogInfo { + get { return data.consoleLogInfo; } + set { if ( data.consoleLogInfo != value ) { data.consoleLogInfo = value; Save(); } } + } + + public static bool consoleLogWarning { + get { return data.consoleLogWarning; } + set { if ( data.consoleLogWarning != value ) { data.consoleLogWarning = value; Save(); } } + } + + public static bool consoleLogError { + get { return data.consoleLogError; } + set { if ( data.consoleLogError != value ) { data.consoleLogError = value; Save(); } } + } + + public static bool consoleClearOnPlay { + get { return data.consoleClearOnPlay; } + set { if ( data.consoleClearOnPlay != value ) { data.consoleClearOnPlay = value; Save(); } } + } + + public static ConsoleLogOrder consoleLogOrder { + get { return data.consoleLogOrder; } + set { if ( data.consoleLogOrder != value ) { data.consoleLogOrder = value; Save(); } } + } + + ///---------------------------------------------------------------------------------------------- + + public static bool explorerShowTypeNames { + get { return data.explorerShowTypeNames; } + set { if ( data.explorerShowTypeNames != value ) { data.explorerShowTypeNames = value; Save(); } } + } + + ///---------------------------------------------------------------------------------------------- + + public static float minimapSize { + get { return UnityEngine.Mathf.Clamp(data.minimapSizeY, MINIMAP_MIN_SIZE, MINIMAP_MAX_SIZE); } + set + { + if ( data.minimapSizeY != value ) { + data.minimapSizeY = UnityEngine.Mathf.Clamp(value, MINIMAP_MIN_SIZE, MINIMAP_MAX_SIZE); + Save(); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + //Save the prefs + static void Save() { + EditorPrefs.SetString(PREFS_KEY_NAME, JSONSerializer.Serialize(typeof(SerializedData), data)); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs.meta new file mode 100644 index 0000000..cb23407 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/Prefs.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1dbed12ec40ec684aaa8d434890ec817 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs new file mode 100644 index 0000000..5224a37 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs @@ -0,0 +1,269 @@ +#if UNITY_EDITOR + +using UnityEngine; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + ///Styling database (styles, icons, colors) + public class StyleSheet : ScriptableObject + { + + private static StyleSheet _styleSheet; + private static StyleSheet styleSheet { + get { return _styleSheet ?? ( _styleSheet = Resources.Load(UnityEditor.EditorGUIUtility.isProSkin ? "StyleSheet/StyleSheetDark" : "StyleSheet/StyleSheetLight") ); } + } + + [ContextMenu("Lock")] void Lock() { hideFlags = HideFlags.NotEditable; } + [ContextMenu("UnLock")] void UnLock() { hideFlags = HideFlags.None; } + + [UnityEditor.InitializeOnLoadMethod] + static void Load() { _styleSheet = styleSheet; } + + ///---------------------------------------------------------------------------------------------- + + [System.Serializable] + public class Styles + { + public GUIStyle window; + public GUIStyle windowShadow; + public GUIStyle windowHighlight; + public GUIStyle windowHeader; + public GUIStyle windowTitle; + + public GUIStyle button; + public GUIStyle box; + public GUIStyle labelOnCanvas; + public GUIStyle commentsBox; + + public GUIStyle nodePortContainer; + public GUIStyle nodePortConnected; + public GUIStyle nodePortEmpty; + + public GUIStyle scaleArrowBR; + public GUIStyle scaleArrowTL; + + public GUIStyle canvasBG; + public GUIStyle canvasBorders; + public GUIStyle editorPanel; + public GUIStyle canvasGroupHeader; + + public GUIStyle hollowBox; + } + + [System.Serializable] + public class Icons + { + public Texture2D bezierTexture; + + [Header("Colorized")] + public Texture2D statusSuccess; + public Texture2D statusFailure; + public Texture2D statusRunning; + + public Texture2D circle; + public Texture2D arrowLeft; + public Texture2D arrowRight; + public Texture2D arrowTop; + public Texture2D arrowBottom; + + public Texture2D genericType; + + [Header("Fixed")] + public Texture2D canvasIcon; + public Texture2D log; + public Texture2D lens; + public Texture2D refactor; + public Texture2D verboseLevel1; + public Texture2D verboseLevel2; + public Texture2D verboseLevel3; + } + + ///---------------------------------------------------------------------------------------------- + + [SerializeField] private Styles styles; + [SerializeField] private Icons icons; + + ///---------------------------------------------------------------------------------------------- + + public static Texture2D bezierTexture { + get { return styleSheet.icons.bezierTexture; } + } + + public static GUIStyle window { + get { return styleSheet.styles.window; } + } + + public static GUIStyle windowShadow { + get { return styleSheet.styles.windowShadow; } + } + + public static GUIStyle windowHighlight { + get { return styleSheet.styles.windowHighlight; } + } + + public static GUIStyle windowHeader { + get { return styleSheet.styles.windowHeader; } + } + + public static GUIStyle windowTitle { + get { return styleSheet.styles.windowTitle; } + } + + public static GUIStyle button { + get { return styleSheet.styles.button; } + } + + public static GUIStyle box { + get { return styleSheet.styles.box; } + } + + public static GUIStyle labelOnCanvas { + get { return styleSheet.styles.labelOnCanvas; } + } + + public static GUIStyle commentsBox { + get { return styleSheet.styles.commentsBox; } + } + + public static GUIStyle nodePortContainer { + get { return styleSheet.styles.nodePortContainer; } + } + + public static GUIStyle nodePortConnected { + get { return styleSheet.styles.nodePortConnected; } + } + + public static GUIStyle nodePortEmpty { + get { return styleSheet.styles.nodePortEmpty; } + } + + public static GUIStyle scaleArrowBR { + get { return styleSheet.styles.scaleArrowBR; } + } + + public static GUIStyle scaleArrowTL { + get { return styleSheet.styles.scaleArrowTL; } + } + + public static GUIStyle canvasBG { + get { return styleSheet.styles.canvasBG; } + } + + public static GUIStyle canvasBorders { + get { return styleSheet.styles.canvasBorders; } + } + + public static GUIStyle editorPanel { + get { return styleSheet.styles.editorPanel; } + } + + public static GUIStyle canvasGroupHeader { + get { return styleSheet.styles.canvasGroupHeader; } + } + + public static GUIStyle hollowBox { + get { return styleSheet.styles.hollowBox; } + } + + ///---------------------------------------------------------------------------------------------- + + public static Texture2D canvasIcon { + get { return styleSheet.icons.canvasIcon; } + } + + public static Texture2D statusSuccess { + get { return styleSheet.icons.statusSuccess; } + } + + public static Texture2D statusFailure { + get { return styleSheet.icons.statusFailure; } + } + + public static Texture2D statusRunning { + get { return styleSheet.icons.statusRunning; } + } + + public static Texture2D circle { + get { return styleSheet.icons.circle; } + } + + public static Texture2D arrowLeft { + get { return styleSheet.icons.arrowLeft; } + } + + public static Texture2D arrowRight { + get { return styleSheet.icons.arrowRight; } + } + + public static Texture2D arrowTop { + get { return styleSheet.icons.arrowTop; } + } + + public static Texture2D arrowBottom { + get { return styleSheet.icons.arrowBottom; } + } + + public static Texture2D genericType { + get { return styleSheet.icons.genericType; } + } + + + public static Texture2D log { + get { return styleSheet.icons.log; } + } + + public static Texture2D lens { + get { return styleSheet.icons.lens; } + } + + public static Texture2D refactor { + get { return styleSheet.icons.refactor; } + } + + public static Texture2D verboseLevel1 { + get { return styleSheet.icons.verboseLevel1; } + } + public static Texture2D verboseLevel2 { + get { return styleSheet.icons.verboseLevel2; } + } + public static Texture2D verboseLevel3 { + get { return styleSheet.icons.verboseLevel3; } + } + + ///---------------------------------------------------------------------------------------------- + + ///Return an arrow based on direction vector + public static Texture2D GetDirectionArrow(Vector2 dir) { + if ( dir.normalized == Vector2.left ) { return arrowLeft; } + if ( dir.normalized == Vector2.right ) { return arrowRight; } + if ( dir.normalized == Vector2.up ) { return arrowTop; } + if ( dir.normalized == Vector2.down ) { return arrowBottom; } + return circle; + } + + ///Return icon based on status + public static Texture2D GetStatusIcon(Status status) { + if ( status == Status.Success ) { return statusSuccess; } + if ( status == Status.Failure ) { return statusFailure; } + if ( status == Status.Running ) { return statusRunning; } + return null; + } + + ///Return color based on status + public static Color GetStatusColor(Status status) { + switch ( status ) { + case ( Status.Failure ): return new Color(1.0f, 0.3f, 0.3f); + case ( Status.Success ): return new Color(0.4f, 0.7f, 0.2f); + case ( Status.Running ): return Color.yellow; + case ( Status.Resting ): return new Color(0.7f, 0.7f, 1f, 0.8f); + case ( Status.Error ): return Color.red; + case ( Status.Optional ): return Color.grey; + } + return Color.white; + } + } +} + +#endif diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs.meta new file mode 100644 index 0000000..bf28584 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Design/PartialEditor/StyleSheet.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 98dfd102d8f307e4c95aa23beac61c5b +timeCreated: 1510960675 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime.meta new file mode 100644 index 0000000..c83986b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e80025b5d020a1644970c8b8d29b16ee +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events.meta new file mode 100644 index 0000000..a613bff --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5b430e1cbec7754eb5614d9e199fc70 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs new file mode 100644 index 0000000..95c8cab --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using UnityEngine; +using ParadoxNotion; + +namespace NodeCanvas.Framework +{ + ///A Signal definition that things can listen to. Can also be invoked in code by calling 'Invoke' but args have to be same type and same length as the parameters defined. + [CreateAssetMenu(menuName = "ParadoxNotion/CanvasCore/Signal Definition")] + public class SignalDefinition : ScriptableObject + { + +#if UNITY_EDITOR + [UnityEditor.InitializeOnLoadMethod] + static void Editor_Init() { + ParadoxNotion.Design.AssetTracker.BeginTrackingAssetsOfType(typeof(SignalDefinition)); + } +#endif + + public delegate void InvokeArguments(Transform sender, Transform receiver, bool isGlobal, params object[] args); + public event InvokeArguments onInvoke; + + [SerializeField, HideInInspector] + private List _parameters = new List(); + + ///The Signal parameters + public List parameters { + get { return _parameters; } + private set { _parameters = value; } + } + + ///Invoke the Signal + public void Invoke(Transform sender, Transform receiver, bool isGlobal, params object[] args) { + if ( onInvoke != null ) { + onInvoke(sender, receiver, isGlobal, args); + } + } + + //... + public void AddParameter(string name, System.Type type) { + var param = new DynamicParameterDefinition(name, type); + _parameters.Add(param); + } + + //... + public void RemoveParameter(string name) { + var param = _parameters.Find(p => p.name == name); + if ( param != null ) { + _parameters.Remove(param); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs.meta new file mode 100644 index 0000000..c59cdd4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Events/SignalDefinition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8d78c77b27bcee4792dedf004b44012 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs.meta new file mode 100644 index 0000000..9c79a49 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2f1b2bf800b7a7640ab05dc25c459d25 +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs new file mode 100644 index 0000000..f1e9268 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs @@ -0,0 +1,63 @@ +using System.Linq; +using ParadoxNotion; +using UnityEngine; + + +namespace NodeCanvas.Framework +{ + + /// A rect group within a Graph + [System.Serializable] + public class CanvasGroup + { + + public string name; + public Rect rect; + public Color color; + public bool autoGroup; + public string notes; + + //required + public CanvasGroup() { } + public CanvasGroup(Rect rect, string name) { + this.rect = rect; + this.name = name; + } + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR + public static readonly Color DEFAULT_NOTES_COLOR = Color.yellow.WithAlpha(0.9f); + [System.NonSerialized] public EditState editState; + [System.NonSerialized] private Node[] containedNodes; + + public enum EditState + { + None, Dragging, RenamingTitle, EditingComments, ScalingBR, ScalingTL + } + + public Node[] GatherContainedNodes(Graph graph) { + containedNodes = graph.allNodes.Where(n => rect.Encapsulates(n.rect)).ToArray(); + return containedNodes; + } + + public Rect AdjustToContainedNodes() { + if ( autoGroup && containedNodes != null && containedNodes.Length > 0 ) { + rect = RectUtils.GetBoundRect(containedNodes.Select(n => n.rect).ToArray()).ExpandBy(30, 65, 30, 30); + } + return rect; + } + + public void FlushContainedNodes() { + containedNodes = null; + } + + public void GatherAdjustAndFlushContainedNodes(Graph graph) { + GatherContainedNodes(graph); + AdjustToContainedNodes(); + FlushContainedNodes(); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs.meta new file mode 100644 index 0000000..b3d9428 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/CanvasGroup(NC).cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 5f9608ac340f7d7418e4682cb7a93a3d +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs new file mode 100644 index 0000000..d789f3f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs @@ -0,0 +1,225 @@ +using NodeCanvas.Framework.Internal; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; +using UndoUtility = ParadoxNotion.Design.UndoUtility; + +namespace NodeCanvas.Framework +{ + +#if UNITY_EDITOR //handles missing types + [fsObject(Processor = typeof(fsRecoveryProcessor))] +#endif + + ///Base class for connections between nodes in a graph + [ParadoxNotion.Design.SpoofAOT] + [System.Serializable, fsDeserializeOverwrite] + abstract public partial class Connection : IGraphElement, ISerializationCollectable + { + + [SerializeField, fsSerializeAsReference] private Node _sourceNode; + [SerializeField, fsSerializeAsReference] private Node _targetNode; + [SerializeField] private string _UID; + [SerializeField] private bool _isDisabled; + + [System.NonSerialized] private Status _status = Status.Resting; + + ///The Unique ID of the node. One is created only if requested. + public string UID => ( string.IsNullOrEmpty(_UID) ? _UID = System.Guid.NewGuid().ToString() : _UID ); + + ///The source node of the connection + public Node sourceNode { + get { return _sourceNode; } + protected set { _sourceNode = value; } + } + + ///The target node of the connection + public Node targetNode { + get { return _targetNode; } + protected set { _targetNode = value; } + } + + string IGraphElement.name => "Connection"; + + ///Is the connection active? + public bool isActive { + get { return !_isDisabled; } + set + { + if ( !_isDisabled && value == false ) { + Reset(); + } + _isDisabled = !value; + } + } + + ///The connection status + public Status status { + get { return _status; } + set { _status = value; } + } + + ///The graph this connection belongs to taken from the source node. + public Graph graph => ( sourceNode != null ? sourceNode.graph : null ); + + ///---------------------------------------------------------------------------------------------- + + //required + public Connection() { } + + ///Create a new Connection. Use this for constructor + public static Connection Create(Node source, Node target, int sourceIndex = -1, int targetIndex = -1) { + + if ( source == null || target == null ) { + Logger.LogError("Can't Create a Connection without providing Source and Target Nodes"); + return null; + } + + if ( source is MissingNode ) { + Logger.LogError("Creating new Connections from a 'MissingNode' is not allowed. Please resolve the MissingNode node first"); + return null; + } + + var newConnection = (Connection)System.Activator.CreateInstance(source.outConnectionType); + + UndoUtility.RecordObject(source.graph, "Create Connection"); + + var resultSourceIndex = newConnection.SetSourceNode(source, sourceIndex); + var resultTargetIndex = newConnection.SetTargetNode(target, targetIndex); + + newConnection.OnValidate(resultSourceIndex, resultTargetIndex); + newConnection.OnCreate(resultSourceIndex, resultTargetIndex); + UndoUtility.SetDirty(source.graph); + + return newConnection; + } + + ///Duplicate the connection providing a new source and target + public Connection Duplicate(Node newSource, Node newTarget) { + + if ( newSource == null || newTarget == null ) { + Logger.LogError("Can't Duplicate a Connection without providing NewSource and NewTarget Nodes"); + return null; + } + + //deep clone + var newConnection = JSONSerializer.Clone(this); + + UndoUtility.RecordObject(newSource.graph, "Duplicate Connection"); + + newConnection._UID = null; + newConnection.sourceNode = newSource; + newConnection.targetNode = newTarget; + newSource.outConnections.Add(newConnection); + newTarget.inConnections.Add(newConnection); + + if ( newSource.graph != null ) { + foreach ( var task in Graph.GetTasksInElement(newConnection) ) { + task.Validate(newSource.graph); + } + } + //-- + + newConnection.OnValidate(newSource.outConnections.Count - 1, newTarget.inConnections.Count - 1); + UndoUtility.SetDirty(newSource.graph); + return newConnection; + } + + ///Sets the source node of the connection + public int SetSourceNode(Node newSource, int index = -1) { + + if ( sourceNode == newSource ) { + return -1; + } + + UndoUtility.RecordObject(graph, "Set Source"); + + //relink + if ( sourceNode != null && sourceNode.outConnections.Contains(this) ) { + var i = sourceNode.outConnections.IndexOf(this); + sourceNode.OnChildDisconnected(i); + sourceNode.outConnections.Remove(this); + } + + index = index == -1 ? newSource.outConnections.Count : index; + newSource.outConnections.Insert(index, this); + newSource.OnChildConnected(index); + sourceNode = newSource; + +#if UNITY_EDITOR + if ( sourceNode != null && targetNode != null ) { + targetNode.TrySortConnectionsByRelativePosition(); + } +#endif + + OnValidate(index, targetNode != null ? targetNode.inConnections.IndexOf(this) : -1); + UndoUtility.SetDirty(graph); + return index; + } + + ///Sets the target node of the connection + public int SetTargetNode(Node newTarget, int index = -1) { + + if ( targetNode == newTarget ) { + return -1; + } + + UndoUtility.RecordObject(graph, "Set Target"); + + //relink + if ( targetNode != null && targetNode.inConnections.Contains(this) ) { + var i = targetNode.inConnections.IndexOf(this); + targetNode.OnParentDisconnected(i); + targetNode.inConnections.Remove(this); + } + + index = index == -1 ? newTarget.inConnections.Count : index; + newTarget.inConnections.Insert(index, this); + newTarget.OnParentConnected(index); + targetNode = newTarget; + +#if UNITY_EDITOR + if ( sourceNode != null && targetNode != null ) { + targetNode.TrySortConnectionsByRelativePosition(); + } +#endif + + OnValidate(sourceNode != null ? sourceNode.outConnections.IndexOf(this) : -1, index); + UndoUtility.SetDirty(graph); + return index; + } + + ///---------------------------------------------------------------------------------------------- + + ///Execute the connection for the specified agent and blackboard. + public Status Execute(Component agent, IBlackboard blackboard) { + if ( !isActive ) { return Status.Optional; } + status = targetNode.Execute(agent, blackboard); + return status; + } + + ///Resets the connection and its targetNode, optionaly recursively + public void Reset(bool recursively = true) { + if ( status == Status.Resting ) { return; } + status = Status.Resting; + if ( recursively ) { targetNode.Reset(recursively); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Called once when the connection is created. + virtual public void OnCreate(int sourceIndex, int targetIndex) { } + ///Called when the Connection is created, duplicated or otherwise needs validation. + virtual public void OnValidate(int sourceIndex, int targetIndex) { } + ///Called when the connection is destroyed (always through graph.RemoveConnection or when a node is removed through graph.RemoveNode) + virtual public void OnDestroy() { } + + ///---------------------------------------------------------------------------------------------- + + public override string ToString() { + return this.GetType().FriendlyName(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs.meta new file mode 100644 index 0000000..2c996bd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Connection.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 76b3ba7e034f5e347926c55eb15ea518 +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs new file mode 100644 index 0000000..c5f4487 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs @@ -0,0 +1,69 @@ +using UnityEngine; + +namespace NodeCanvas.Framework +{ + + ///Used to parametrize root graph local blackboard parameters from GraphOwner, without affecting the graph variables serialization. So each GraphOwner can parametrize the assigned graph individually, while the graph remains the same serialization-wise. Relevant when either using Prefab GraphOwners with Bound Graphs, or re-using Asset Graphs on GraphOwners. + [ParadoxNotion.Design.SpoofAOT] + abstract public class ExposedParameter + { + abstract public string targetVariableID { get; } + abstract public System.Type type { get; } + abstract public object valueBoxed { get; set; } + abstract public void Bind(IBlackboard blackboard); + abstract public void UnBind(); + abstract public Variable varRefBoxed { get; } + + public static ExposedParameter CreateInstance(Variable target) { + return (ExposedParameter)System.Activator.CreateInstance(typeof(ExposedParameter<>).MakeGenericType(target.varType), ParadoxNotion.ReflectionTools.SingleTempArgsArray(target)); + } + } + + ///See ExposedParameter + sealed public class ExposedParameter : ExposedParameter + { + [SerializeField] private string _targetVariableID; + [SerializeField] private T _value; + + public Variable varRef { get; private set; } + + public ExposedParameter() { } + public ExposedParameter(Variable target) { + Debug.Assert(target is Variable, "Target Variable is not typeof T"); + _targetVariableID = target.ID; + _value = (T)target.value; + } + + public override string targetVariableID => _targetVariableID; + public override System.Type type => typeof(T); + public override object valueBoxed { get { return this.value; } set { this.value = (T)value; } } + public override Variable varRefBoxed => varRef; + + ///Value of the parameter + public T value { + get { return varRef != null && Application.isPlaying ? varRef.value : _value; } + set + { + if ( varRef != null && Application.isPlaying ) { + varRef.value = value; + } + _value = value; + } + } + + ///Initialize Variables binding from target blackboard + public override void Bind(IBlackboard blackboard) { + if ( varRef != null ) { varRef.UnBind(); } //unbind if any + varRef = (Variable)blackboard.GetVariableByID(targetVariableID); + if ( varRef != null ) { varRef.BindGetSet(GetRawValue, SetRawValue); } + } + + ///Unbind from variable if any + public override void UnBind() { + if ( varRef != null ) { varRef.UnBind(); } + } + + T GetRawValue() { return _value; } + void SetRawValue(T value) { this._value = value; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs.meta new file mode 100644 index 0000000..73c4401 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/ExposedParameter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca3db4bd3e1e2f74a8a3afe63f7f7028 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs new file mode 100644 index 0000000..3698a74 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs @@ -0,0 +1,1224 @@ +using System.Linq; +using System.Collections.Generic; +using NodeCanvas.Framework.Internal; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using ParadoxNotion.Services; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; +using UndoUtility = ParadoxNotion.Design.UndoUtility; + +namespace NodeCanvas.Framework +{ + + ///This is the base and main class of NodeCanvas and graphs. All graph System are deriving from this. + [System.Serializable] + abstract public partial class Graph : ScriptableObject, ITaskSystem, ISerializationCallbackReceiver + { + ///Update mode of the graph (see 'StartGraph') + public enum UpdateMode + { + NormalUpdate = 0, + LateUpdate = 1, + FixedUpdate = 2, + Manual = 3, + } + + ///---------------------------------------------------------------------------------------------- + + //the json graph + [SerializeField] private string _serializedGraph; + //the unity references used for json graph + [SerializeField] private List _objectReferences; + //the actual graph data. Mixed serialized by Unity/Json + [SerializeField] private GraphSource _graphSource = new GraphSource(); + //used to halt self-serialization when something went wrong in deserialization + [SerializeField] private bool _haltSerialization; + + [SerializeField, Tooltip("An external text asset file to serialize the graph on top of the internal serialization")] + private TextAsset _externalSerializationFile; + public TextAsset externalSerializationFile { get { return _externalSerializationFile; } internal set { _externalSerializationFile = value; } } + + [System.NonSerialized] private bool haltForUndo; + + ///Invoked after graph serialization. + public static event System.Action onGraphSerialized; + ///Invoked after graph deserialization. + public static event System.Action onGraphDeserialized; + + ///---------------------------------------------------------------------------------------------- + void ISerializationCallbackReceiver.OnBeforeSerialize() { SelfSerialize(); } + void ISerializationCallbackReceiver.OnAfterDeserialize() { SelfDeserialize(); } + ///---------------------------------------------------------------------------------------------- + + ///---------------------------------------------------------------------------------------------- + protected void OnEnable() { Validate(); OnGraphObjectEnable(); } + protected void OnDisable() { OnGraphObjectDisable(); } + protected void OnDestroy() { if ( Threader.applicationIsPlaying ) { Stop(); } OnGraphObjectDestroy(); } + protected void OnValidate() { /*we dont need this now*/ } + protected void Reset() { OnGraphValidate(); } + ///---------------------------------------------------------------------------------------------- + + ///Serialize the Graph. Return if serialization changed + public bool SelfSerialize() { + + //if something went wrong on deserialization, dont serialize back, but rather keep what we had until a deserialization attempt is successful. + if ( _haltSerialization ) { + return false; + } + + if ( haltForUndo /*|| Threader.applicationIsPlaying*/ ) { + return false; + } + + var newReferences = new List(); + var newSerialization = this.Serialize(newReferences); + if ( newSerialization != _serializedGraph || !newReferences.SequenceEqual(_objectReferences) ) { + + haltForUndo = true; + UndoUtility.RecordObjectComplete(this, UndoUtility.GetLastOperationNameOr("Graph Change")); + haltForUndo = false; + + //store + _serializedGraph = newSerialization; + _objectReferences = newReferences; + +#if UNITY_EDITOR + + if ( _externalSerializationFile != null ) { + var externalSerializationFilePath = ParadoxNotion.Design.EditorUtils.AssetToSystemPath(UnityEditor.AssetDatabase.GetAssetPath(_externalSerializationFile)); + System.IO.File.WriteAllText(externalSerializationFilePath, JSONSerializer.PrettifyJson(newSerialization)); + } + + //notify owner (this is basically used for bound graphs) + var owner = agent as GraphOwner; + if ( owner != null ) { + owner.OnAfterGraphSerialized(this); + } +#endif + + //raise event + if ( onGraphSerialized != null ) { + onGraphSerialized(this); + } + + //purge cache and refs + graphSource.PurgeRedundantReferences(); + flatMetaGraph = null; + fullMetaGraph = null; + nestedMetaGraph = null; + + return true; + } + + return false; + } + + ///Deserialize the Graph. Return if that succeed + public bool SelfDeserialize() { + if ( Deserialize(_serializedGraph, _objectReferences, false) ) { + //raise event + if ( onGraphDeserialized != null ) { + onGraphDeserialized(this); + } + return true; + } + return false; + } + + ///---------------------------------------------------------------------------------------------- + + ///Serialize the graph and returns the serialized json string. The provided objectReferences list will be cleared and populated with the found unity object references. + public string Serialize(List references) { + if ( references == null ) { references = new List(); } + UpdateNodeIDs(true); + var result = JSONSerializer.Serialize(typeof(GraphSource), graphSource.Pack(this), references); + return result; + } + + ///Deserialize the json serialized graph provided. Returns the data or null if failed. + //The provided references list will be used to read serialized unity object references. + //IMPORTANT: Validate should be called true in all deserialize cases outside of Unity's 'OnAfterDeserialize', + //like for example when loading from json, or manualy calling this outside of OnAfterDeserialize. + //Otherwise, Validate can also be called separately. + public bool Deserialize(string serializedGraph, List references, bool validate) { + if ( string.IsNullOrEmpty(serializedGraph) ) { + Logger.LogWarning("JSON is null or empty on graph when deserializing.", LogTag.SERIALIZATION, this); + return false; + } + + //the list to load the references from. If not provided explicitely we load from the local list + if ( references == null ) { references = this._objectReferences; } + + try { + //deserialize provided serialized graph into a new GraphSerializationData object and load it + JSONSerializer.TryDeserializeOverwrite(graphSource, serializedGraph, references); + if ( graphSource.type != this.GetType().FullName ) { + Logger.LogError("Can't Load graph because of different Graph type serialized and required.", LogTag.SERIALIZATION, this); + _haltSerialization = true; + return false; + } + + this._graphSource = graphSource.Unpack(this); + this._serializedGraph = serializedGraph; + this._objectReferences = references; + this._haltSerialization = false; + if ( validate ) { Validate(); } + return true; + } + + catch ( System.Exception e ) { + Logger.LogException(e, LogTag.SERIALIZATION, this); + this._haltSerialization = true; + return false; + } + } + + ///---------------------------------------------------------------------------------------------- + ///Returns the GraphSource object itself + public GraphSource GetGraphSource() { return _graphSource; } + ///Returns the serialization json + public string GetSerializedJsonData() { return _serializedGraph; } + ///Return a copy of the serialized Unity object references + public List GetSerializedReferencesData() { return _objectReferences?.ToList(); } + ///Returns a new GraphSource with meta data copied from this GraphSource + public GraphSource GetGraphSourceMetaDataCopy() { return new GraphSource().SetMetaData(graphSource); } + ///Sets this GraphSource meta data from provided GraphSource + public void SetGraphSourceMetaData(GraphSource source) { graphSource.SetMetaData(source); } + ///---------------------------------------------------------------------------------------------- + + ///Serialize the local blackboard of the graph alone. The provided references list will be cleared and populated anew. + public string SerializeLocalBlackboard(ref List references) { + if ( references != null ) { references.Clear(); } + return JSONSerializer.Serialize(typeof(BlackboardSource), localBlackboard, references); + } + + ///Deserialize the local blackboard of the graph alone. + public bool DeserializeLocalBlackboard(string json, List references) { + localBlackboard = JSONSerializer.TryDeserializeOverwrite(localBlackboard, json, references); + return true; + } + + ///Clones the graph as child of parentGraph and returns the new one. + public static T Clone(T graph, Graph parentGraph) where T : Graph { + var newGraph = Instantiate(graph); + newGraph.name = newGraph.name.Replace("(Clone)", string.Empty); + newGraph.parentGraph = parentGraph; + return (T)newGraph; + } + + ///Validate the graph, it's nodes and tasks. Also called from OnEnable callback. + public void Validate() { + + if ( string.IsNullOrEmpty(_serializedGraph) ) { + //we dont really have anything to validate in this case + return; + } + +#if UNITY_EDITOR + if ( !Threader.applicationIsPlaying ) { + UpdateReferences(this.agent, this.parentBlackboard, true); + } +#endif + + for ( var i = 0; i < allNodes.Count; i++ ) { + try { allNodes[i].Validate(this); } //validation could be critical. we always continue + catch ( System.Exception e ) { Logger.LogException(e, LogTag.VALIDATION, allNodes[i]); continue; } + } + + for ( var i = 0; i < allTasks.Count; i++ ) { + try { allTasks[i].Validate(this); } //validation could be critical. we always continue + catch ( System.Exception e ) { Logger.LogException(e, LogTag.VALIDATION, allTasks[i]); continue; } + } + + OnGraphValidate(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Raised when the graph is Stoped/Finished if it was Started at all. Important: After the event raised, it is also cleared from all subscribers! + public event System.Action onFinish; + + private static List _runningGraphs; + + private bool hasInitialized { get; set; } + private HierarchyTree.Element flatMetaGraph { get; set; } + private HierarchyTree.Element fullMetaGraph { get; set; } + private HierarchyTree.Element nestedMetaGraph { get; set; } + + ///---------------------------------------------------------------------------------------------- + + ///The base type of all nodes that can live in this system + abstract public System.Type baseNodeType { get; } + ///Is this system allowed to start with a null agent? + abstract public bool requiresAgent { get; } + ///Does the system needs a prime Node to be set for it to start? + abstract public bool requiresPrimeNode { get; } + ///Is the graph considered to be a tree? (and thus nodes auto sorted on position x) + abstract public bool isTree { get; } + ///The (visual) direction of the connections (also affects auto sorting for trees) + abstract public PlanarDirection flowDirection { get; } + ///Is overriding local blackboard and parametrizing local blackboard variables allowed? + abstract public bool allowBlackboardOverrides { get; } + ///Whether the graph can accept variables Drag&Drop + abstract public bool canAcceptVariableDrops { get; } + + ///---------------------------------------------------------------------------------------------- + + ///The graph data container + private GraphSource graphSource { + get { return _graphSource; } + set { _graphSource = value; } + } + + ///Graph category + public string category { + get { return graphSource.category; } + set { graphSource.category = value; } + } + + ///Graph Comments + public string comments { + get { return graphSource.comments; } + set { graphSource.comments = value; } + } + + ///The translation of the graph in the total canvas + public Vector2 translation { + get { return graphSource.translation; } + set { graphSource.translation = value; } + } + + ///The zoom of the graph + public float zoomFactor { + get { return graphSource.zoomFactor; } + set { graphSource.zoomFactor = value; } + } + + ///All nodes assigned to this graph + public List allNodes { + get { return graphSource.nodes; } + set { graphSource.nodes = value; } + } + + ///The canvas groups of the graph + public List canvasGroups { + get { return graphSource.canvasGroups; } + set { graphSource.canvasGroups = value; } + } + + ///The local blackboard of the graph + private BlackboardSource localBlackboard { + get { return graphSource.localBlackboard; } + set { graphSource.localBlackboard = value; } + } + + private List allTasks => graphSource.allTasks; + private List allParameters => graphSource.allParameters; + private List allConnections => graphSource.connections; + + ///---------------------------------------------------------------------------------------------- + + ///In runtime only, returns the root graph in case this is a nested graph. Returns itself if not. + public Graph rootGraph { + get + { + var current = this; + while ( current.parentGraph != null ) { + current = current.parentGraph; + } + return current; + } + } + + ///Is serialization halted? (could be in case of deserialization error) + public bool serializationHalted => _haltSerialization; + + ///All currently running graphs + public static IEnumerable runningGraphs => _runningGraphs; + + ///The parent Graph if any when this graph is a nested one. Set in runtime only after the nested graph (this) is instantiated via 'Clone' method. + public Graph parentGraph { get; private set; } + + ///The time in seconds this graph is running + public float elapsedTime { get; private set; } + + ///The delta time used to update the graph + public float deltaTime { get; private set; } + + ///The last frame (Time.frameCount) the graph was updated + public int lastUpdateFrame { get; private set; } + + ///Did the graph update this or the previous frame? + public bool didUpdateLastFrame => ( lastUpdateFrame >= Time.frameCount - 1 ); + + ///Is the graph running? + public bool isRunning { get; private set; } + + ///Is the graph paused? + public bool isPaused { get; private set; } + + ///The current update mode used for the graph + public UpdateMode updateMode { get; private set; } + + ///The 'Start' node. It should always be the first node in the nodes collection + public Node primeNode { + get + { + if ( allNodes.Count > 0 ) { + var first = allNodes[0]; + if ( first.allowAsPrime ) { + return first; + } + } + return null; + } + set + { + if ( primeNode != value && value != null && value.allowAsPrime && allNodes.Contains(value) ) { + if ( isRunning ) { + if ( primeNode != null ) { primeNode.Reset(); } + value.Reset(); + } + UndoUtility.RecordObjectComplete(this, "Set Start"); + allNodes.Remove(value); + allNodes.Insert(0, value); + UpdateNodeIDs(true); + UndoUtility.SetDirty(this); + } + } + } + + ///The agent currently used by the graph + public Component agent { get; private set; } + + ///The local blackboard of the graph where parentBlackboard if any is parented to + public IBlackboard blackboard => localBlackboard; + + ///The blackboard which is parented to the graph's local blackboard Should be the same as '.blackboard.parent' and usually refers to the GraphOwner (agent) .blackboard + public IBlackboard parentBlackboard { get; private set; } + + ///The UnityObject of the ITaskSystem. In this case the graph itself + UnityEngine.Object ITaskSystem.contextObject => this; + + ///---------------------------------------------------------------------------------------------- + + ///See UpdateReferences + public void UpdateReferencesFromOwner(GraphOwner owner, bool force = false) { + UpdateReferences(owner, owner != null ? owner.blackboard : null, force); + } + + ///Update the Agent/Component and Blackboard references. This is done when the graph initialize or start, and in the editor for convenience. + public void UpdateReferences(Component newAgent, IBlackboard newParentBlackboard, bool force = false) { + if ( !ReferenceEquals(this.agent, newAgent) || !ReferenceEquals(this.parentBlackboard, newParentBlackboard) || force ) { + this.agent = newAgent; + this.parentBlackboard = newParentBlackboard; + if ( !ReferenceEquals(newParentBlackboard, this.localBlackboard) && allowBlackboardOverrides ) { + this.localBlackboard.parent = newParentBlackboard; + } else { + this.localBlackboard.parent = null; + } + + this.localBlackboard.propertiesBindTarget = newAgent; + this.localBlackboard.unityContextObject = this; + + UpdateNodeBBFields(); + ( (ITaskSystem)this ).UpdateTasksOwner(); + } + } + + ///Update all graph node's BBFields for current Blackboard. + void UpdateNodeBBFields() { + for ( var i = 0; i < allParameters.Count; i++ ) { + allParameters[i].bb = blackboard; + } + } + + ///Sets all graph Tasks' owner system (which is this graph). + void ITaskSystem.UpdateTasksOwner() { + for ( var i = 0; i < allTasks.Count; i++ ) { + allTasks[i].SetOwnerSystem(this); + } + } + + ///Update the IDs of the nodes in the graph. Is automatically called whenever a change happens in the graph by the adding, removing, connecting etc. + public void UpdateNodeIDs(bool alsoReorderList) { + + if ( allNodes.Count == 0 ) { + return; + } + + var lastID = -1; + var parsed = new Node[allNodes.Count]; + + if ( primeNode != null ) { + lastID = AssignNodeID(primeNode, lastID, ref parsed); + } + + foreach ( var node in allNodes.OrderBy(n => ( n.inConnections.Count == 0 ? 0 : 1 ) + n.priority * -1) ) { + lastID = AssignNodeID(node, lastID, ref parsed); + } + + if ( alsoReorderList ) { + allNodes = parsed.ToList(); + } + } + + //Used above to assign a node's ID and list order + int AssignNodeID(Node node, int lastID, ref Node[] parsed) { + if ( !parsed.Contains(node) ) { + lastID++; + node.ID = lastID; + parsed[lastID] = node; + for ( var i = 0; i < node.outConnections.Count; i++ ) { + var targetNode = node.outConnections[i].targetNode; + lastID = AssignNodeID(targetNode, lastID, ref parsed); + } + } + return lastID; + } + + ///---------------------------------------------------------------------------------------------- + + ///used for thread safe init calls + private event System.Action delayedInitCalls; + ///used for thread safe init calls + protected void ThreadSafeInitCall(System.Action call) { + if ( Threader.isMainThread ) { call(); } else { delayedInitCalls += call; } + } + + ///Load overwrite the graph async. Used by GraphOwner. + public async void LoadOverwriteAsync(GraphLoadData data, System.Action callback) { + await System.Threading.Tasks.Task.Run(() => LoadOverwrite(data)); + if ( delayedInitCalls != null ) { + delayedInitCalls(); + delayedInitCalls = null; + } + callback(); + } + + ///Load overwrite the graph. Used by GraphOwner. + public void LoadOverwrite(GraphLoadData data) { + SetGraphSourceMetaData(data.source); + Deserialize(data.json, data.references, false); + UpdateReferences(data.agent, data.parentBlackboard); + Validate(); + OnGraphInitialize(); + // TODO: Make subgraphs instance in main thread and init them as parallel tasks + if ( data.preInitializeSubGraphs ) { ThreadSafeInitCall(PreInitializeSubGraphs); } + ThreadSafeInitCall(() => localBlackboard.InitializePropertiesBinding(data.agent, false)); + hasInitialized = true; + } + + ///Initialize the graph for target agent/blackboard with option to preload subgraphs. This is called from StartGraph as well if Initialize has not been called before. + public void Initialize(Component newAgent, IBlackboard newParentBlackboard, bool preInitializeSubGraphs) { + Debug.Assert(Threader.applicationIsPlaying, "Initialize should have been called in play mode only."); + Debug.Assert(!hasInitialized, "Graph is already initialized."); + UpdateReferences(newAgent, newParentBlackboard); + OnGraphInitialize(); + if ( preInitializeSubGraphs ) { PreInitializeSubGraphs(); } + localBlackboard.InitializePropertiesBinding(newAgent, false); + hasInitialized = true; + } + + ///Preloads and initialize all subgraphs of this graph recursively + void PreInitializeSubGraphs() { + foreach ( var assignable in allNodes.OfType() ) { + var instance = assignable.CheckInstance(); + if ( instance != null ) { + instance.Initialize(this.agent, this.blackboard.parent, /*Preinit Subs:*/ true); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Start the graph for the agent and blackboard provided with specified update mode. Optionally provide a callback for when the graph stops/ends + public void StartGraph(Component newAgent, IBlackboard newParentBlackboard, UpdateMode newUpdateMode, System.Action callback = null) { + +#if UNITY_EDITOR + Debug.Assert(Application.isPlaying, "StartGraph should have been called in play mode only."); + Debug.Assert(!UnityEditor.EditorUtility.IsPersistent(this), "You have tried to start a graph which is an asset, not an instance! You should Instantiate the graph first."); +#endif + + Debug.Assert(newParentBlackboard != this.blackboard, "StartGraph called with blackboard parameter being the same as the graph blackboard"); + + if ( newAgent == null && requiresAgent ) { + Logger.LogError("You've tried to start a graph with null Agent.", LogTag.GRAPH, this); + return; + } + + if ( primeNode == null && requiresPrimeNode ) { + Logger.LogError("You've tried to start graph without a 'Start' node.", LogTag.GRAPH, this); + return; + } + + if ( isRunning && !isPaused ) { + Logger.LogWarning("Graph is already Active and not Paused.", LogTag.GRAPH, this); + return; + } + + + if ( !hasInitialized ) { + Initialize(newAgent, newParentBlackboard, false); + } else { + //if the graph has pre-initialized with same targets, this call does basically nothing, + //but we still need to call it in case the graph is started with different targets. + UpdateReferences(newAgent, newParentBlackboard); + } + + if ( callback != null ) { onFinish = callback; } + + if ( isRunning && isPaused ) { + Resume(); + return; + } + + if ( _runningGraphs == null ) { _runningGraphs = new List(); } + _runningGraphs.Add(this); + elapsedTime = 0; + + isRunning = true; + isPaused = false; + + OnGraphStarted(); + + for ( var i = 0; i < allNodes.Count; i++ ) { + allNodes[i].OnGraphStarted(); + } + + for ( var i = 0; i < allNodes.Count; i++ ) { + allNodes[i].OnPostGraphStarted(); + } + + if ( isRunning ) { + //check isRunning before adding the update call for in case the graph immediately ended in the same frame that it started + updateMode = newUpdateMode; + if ( updateMode != UpdateMode.Manual ) { + MonoManager.current.AddUpdateCall((MonoManager.UpdateMode)updateMode, UpdateGraph); + } + } + } + + ///Stops the graph completely and resets all nodes. + public void Stop(bool success = true) { + + if ( !isRunning ) { + return; + } + + _runningGraphs.Remove(this); + if ( updateMode != UpdateMode.Manual ) { + MonoManager.current.RemoveUpdateCall((MonoManager.UpdateMode)updateMode, UpdateGraph); + } + + for ( var i = 0; i < allNodes.Count; i++ ) { + var node = allNodes[i]; + //try stop subgraphs first + if ( node is IGraphAssignable ) { ( node as IGraphAssignable ).TryStopSubGraph(); } + node.Reset(false); + node.OnGraphStoped(); + } + + for ( var i = 0; i < allNodes.Count; i++ ) { + allNodes[i].OnPostGraphStoped(); + } + + OnGraphStoped(); + + isRunning = false; + isPaused = false; + + if ( onFinish != null ) { + onFinish(success); + onFinish = null; + } + + //reset elapsed time after onFinish callback in case it is needed info + elapsedTime = 0; + } + + ///Pauses the graph from updating as well as notifying all nodes. + public void Pause() { + + if ( !isRunning || isPaused ) { + return; + } + + if ( updateMode != UpdateMode.Manual ) { + MonoManager.current.RemoveUpdateCall((MonoManager.UpdateMode)updateMode, UpdateGraph); + } + + isRunning = true; + isPaused = true; + + for ( var i = 0; i < allNodes.Count; i++ ) { + var node = allNodes[i]; + if ( node is IGraphAssignable ) { ( node as IGraphAssignable ).TryPauseSubGraph(); } + node.OnGraphPaused(); + } + + OnGraphPaused(); + } + + ///Resumes a paused graph + public void Resume() { + + if ( !isRunning || !isPaused ) { + return; + } + + isRunning = true; + isPaused = false; + + OnGraphUnpaused(); + + for ( var i = 0; i < allNodes.Count; i++ ) { + var node = allNodes[i]; + if ( node is IGraphAssignable ) { ( node as IGraphAssignable ).TryResumeSubGraph(); } + node.OnGraphUnpaused(); + } + + if ( updateMode != UpdateMode.Manual ) { + MonoManager.current.AddUpdateCall((MonoManager.UpdateMode)updateMode, UpdateGraph); + } + } + + ///Same as Stop - Start + public void Restart() { + Stop(); + StartGraph(agent, blackboard, updateMode, onFinish); + } + + ///Updates the graph. Normaly this is updated by MonoManager since at StartGraph, this method is registered for updating by GraphOwner. + public void UpdateGraph() { UpdateGraph(Time.deltaTime); } + public void UpdateGraph(float deltaTime) { + // UnityEngine.Profiling.Profiler.BeginSample(string.Format("Graph Update ({0})", agent != null? agent.name : this.name) ); + if ( isRunning ) { + this.deltaTime = deltaTime; + elapsedTime += deltaTime; + lastUpdateFrame = Time.frameCount; + OnGraphUpdate(); + } else { + Logger.LogWarning("UpdateGraph called in a non-running, non-paused graph. StartGraph() or StartBehaviour() should be called first.", LogTag.EXECUTION, this); + } + // UnityEngine.Profiling.Profiler.EndSample(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Graph can override this for derived data serialization if needed + virtual public object OnDerivedDataSerialization() { return null; } + ///Graph can override this for derived data deserialization if needed + virtual public void OnDerivedDataDeserialization(object data) { } + + ///Override for graph initialization + virtual protected void OnGraphInitialize() { } + ///Override for graph specific stuff to run when the graph is started + virtual protected void OnGraphStarted() { } + ///Override for graph specific per frame logic. Called every frame if the graph is running + virtual protected void OnGraphUpdate() { } + ///Override for graph specific stuff to run when the graph is stoped + virtual protected void OnGraphStoped() { } + ///Override for graph stuff to run when the graph is paused + virtual protected void OnGraphPaused() { } + ///Override for graph stuff to run when the graph is resumed + virtual protected void OnGraphUnpaused() { } + + ///Called when the unity object graph is enabled + virtual protected void OnGraphObjectEnable() { } + ///Called when the unity object graph is disabled + virtual protected void OnGraphObjectDisable() { } + ///Called when the unity object graph is destroyed + virtual protected void OnGraphObjectDestroy() { } + ///Use this for derived graph Validation + virtual protected void OnGraphValidate() { } + + ///---------------------------------------------------------------------------------------------- + + ///Invokes named onCustomEvent on EventRouter + public void SendEvent(string name, object value, object sender) { + if ( agent == null || !isRunning ) { return; } +#if UNITY_EDITOR + Logger.Log(string.Format("Event '{0}' Send to '{1}'", name, agent.gameObject.name), LogTag.EVENT, agent); +#endif + var router = agent.GetComponent(); + if ( router != null ) { router.InvokeCustomEvent(name, value, sender); } + } + + ///Invokes named onCustomEvent on EventRouter + public void SendEvent(string name, T value, object sender) { + if ( agent == null || !isRunning ) { return; } +#if UNITY_EDITOR + Logger.Log(string.Format("Event '{0}' Send to '{1}'", name, agent.gameObject.name), LogTag.EVENT, agent); +#endif + var router = agent.GetComponent(); + if ( router != null ) { router.InvokeCustomEvent(name, value, sender); } + } + + ///Invokes named onCustomEvent on EventRouter globaly for all running graphs + public static void SendGlobalEvent(string name, object value, object sender) { + if ( _runningGraphs == null ) { return; } + var sent = new List(); + foreach ( var graph in _runningGraphs.ToArray() ) { + if ( graph.agent != null && !sent.Contains(graph.agent.gameObject) ) { + sent.Add(graph.agent.gameObject); + graph.SendEvent(name, value, sender); + } + } + } + + ///Invokes named onCustomEvent on EventRouter globaly for all running graphs + public static void SendGlobalEvent(string name, T value, object sender) { + if ( _runningGraphs == null ) { return; } + var sent = new List(); + foreach ( var graph in _runningGraphs.ToArray() ) { + if ( graph.agent != null && !sent.Contains(graph.agent.gameObject) ) { + sent.Add(graph.agent.gameObject); + graph.SendEvent(name, value, sender); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns all BBParameters serialized in the graph + public IEnumerable GetAllParameters() { return allParameters; } + + ///Returns all connections + public IEnumerable GetAllConnections() { return allConnections; } + + ///Returns all tasks of type T + public IEnumerable GetAllTasksOfType() where T : Task { return allTasks.OfType(); } + + ///Get a node by it's ID, null if not found. The ID should always be the same as the node's index in allNodes list. + public Node GetNodeWithID(int searchID) { + if ( searchID < allNodes.Count && searchID >= 0 ) { + return allNodes.Find(n => n.ID == searchID); + } + return null; + } + + ///Get all nodes of a specific type + public IEnumerable GetAllNodesOfType() where T : Node { + return allNodes.OfType(); + } + + ///Get a node by it's tag name + public T GetNodeWithTag(string tagName) where T : Node { + return allNodes.OfType().FirstOrDefault(n => n.tag == tagName); + } + + ///Get all nodes taged with such tag name + public IEnumerable GetNodesWithTag(string tagName) where T : Node { + return allNodes.OfType().Where(n => n.tag == tagName); + } + + ///Get all taged nodes regardless tag name + public IEnumerable GetAllTagedNodes() where T : Node { + return allNodes.OfType().Where(n => !string.IsNullOrEmpty(n.tag)); + } + + ///Get all nodes of the graph that have no incomming connections + public IEnumerable GetRootNodes() { + return allNodes.Where(n => n.inConnections.Count == 0); + } + + ///Get all nodes of the graph that have no outgoing connections + public IEnumerable GetLeafNodes() { + return allNodes.Where(n => n.outConnections.Count == 0); + } + + ///Get all Nested graphs of this graph + public IEnumerable GetAllNestedGraphs(bool recursive) where T : Graph { + var graphs = new List(); + foreach ( var node in allNodes.OfType() ) { + if ( node.subGraph is T ) { + graphs.Add((T)node.subGraph); + if ( recursive ) { + graphs.AddRange(node.subGraph.GetAllNestedGraphs(recursive)); + } + } + } + return graphs.Distinct(); + } + + ///Get all runtime instanced Nested graphs of this graph and it's sub-graphs + public IEnumerable GetAllInstancedNestedGraphs() { + var instances = new List(); + foreach ( var node in allNodes.OfType() ) { + if ( node.instances != null ) { + var subInstances = node.instances.Values; + instances.AddRange(subInstances); + foreach ( var subInstance in subInstances ) { + instances.AddRange(subInstance.GetAllInstancedNestedGraphs()); + } + } + } + return instances; + } + + ///Returns all defined BBParameter found in graph + public IEnumerable GetDefinedParameters() { + return allParameters.Where(p => p != null && p.isDefined); + } + + ///Utility function to create all defined parameters of this graph as variables into the provided blackboard. + public void PromoteMissingParametersToVariables(IBlackboard bb) { + foreach ( var bbParam in GetDefinedParameters() ) { + if ( bbParam.varRef == null && !bbParam.isPresumedDynamic ) { + bbParam.PromoteToVariable(bb); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Given an object returns the relevant graph if any can be resolved + public static Graph GetElementGraph(object obj) { + if ( obj is GraphOwner ) { return ( obj as GraphOwner ).graph; } + if ( obj is Graph ) { return (Graph)obj; } + if ( obj is Node ) { return ( obj as Node ).graph; } + if ( obj is Connection ) { return ( obj as Connection ).graph; } + if ( obj is Task ) { return ( obj as Task ).ownerSystem as Graph; } + if ( obj is BlackboardSource ) { return ( obj as BlackboardSource ).unityContextObject as Graph; } + return null; + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns a structure of the graph that includes Nodes, Connections, Tasks and BBParameters, but with nodes elements all being root to the graph (instead of respective parent connections). + public HierarchyTree.Element GetFlatMetaGraph() { + + if ( flatMetaGraph != null ) { + return flatMetaGraph; + } + + var root = new HierarchyTree.Element(this); + int lastID = 0; + for ( var i = 0; i < allNodes.Count; i++ ) { + root.AddChild(GetTreeNodeElement(allNodes[i], false, ref lastID)); + } + return flatMetaGraph = root; + } + + ///Returns a structure of the graph that includes Nodes, Connections, Tasks and BBParameters, but where node elements are parent to their respetive connections. Only possible for tree-like graphs. + public HierarchyTree.Element GetFullMetaGraph() { + + if ( fullMetaGraph != null ) { + return fullMetaGraph; + } + + var root = new HierarchyTree.Element(this); + int lastID = 0; + if ( primeNode != null ) { + root.AddChild(GetTreeNodeElement(primeNode, true, ref lastID)); + } + for ( var i = 0; i < allNodes.Count; i++ ) { + var node = allNodes[i]; + if ( node.ID > lastID && node.inConnections.Count == 0 ) { + root.AddChild(GetTreeNodeElement(node, true, ref lastID)); + } + } + return fullMetaGraph = root; + } + + ///Returns a structure of all nested graphs recursively, contained within this graph. + public HierarchyTree.Element GetNestedMetaGraph() { + + if ( nestedMetaGraph != null ) { + return nestedMetaGraph; + } + + var root = new HierarchyTree.Element(this); + DigNestedGraphs(this, root); + return nestedMetaGraph = root; + } + + //Used above + static void DigNestedGraphs(Graph currentGraph, HierarchyTree.Element currentElement) { + for ( var i = 0; i < currentGraph.allNodes.Count; i++ ) { + var assignable = currentGraph.allNodes[i] as IGraphAssignable; + if ( assignable != null && assignable.subGraph != null ) { + DigNestedGraphs(assignable.subGraph, currentElement.AddChild(new HierarchyTree.Element(assignable))); + } + } + } + + ///Used above. Returns a node hierarchy element optionaly along with all it's children recursively + static HierarchyTree.Element GetTreeNodeElement(Node node, bool recurse, ref int lastID) { + var nodeElement = CollectSubElements(node); + for ( var i = 0; i < node.outConnections.Count; i++ ) { + var connectionElement = CollectSubElements(node.outConnections[i]); + nodeElement.AddChild(connectionElement); + if ( recurse ) { + var targetNode = node.outConnections[i].targetNode; + if ( targetNode.ID > node.ID ) { //ensure no recursion loop + connectionElement.AddChild(GetTreeNodeElement(targetNode, recurse, ref lastID)); + } + } + } + lastID = node.ID; + return nodeElement; + } + + ///Returns an element that includes tasks and parameters for target object recursively + static HierarchyTree.Element CollectSubElements(IGraphElement obj) { + HierarchyTree.Element parentElement = null; + var stack = new Stack(); + + JSONSerializer.SerializeAndExecuteNoCycles(obj.GetType(), obj, (o) => + { + if ( o is ISerializationCollectable ) { + var e = new HierarchyTree.Element(o); + if ( stack.Count > 0 ) { stack.Peek().AddChild(e); } + stack.Push(e); + } + }, (o, d) => + { + if ( o is ISerializationCollectable ) { + parentElement = stack.Pop(); + } + }); + + return parentElement; + } + + ///---------------------------------------------------------------------------------------------- + + ///Get the parent graph element (node/connection) from target Task. + public IGraphElement GetTaskParentElement(Task targetTask) { + var targetElement = GetFlatMetaGraph().FindReferenceElement(targetTask); + return targetElement != null ? targetElement.GetFirstParentReferenceOfType() : null; + } + + ///Get the parent graph element (node/connection) from target BBParameter + public IGraphElement GetParameterParentElement(BBParameter targetParameter) { + var targetElement = GetFlatMetaGraph().FindReferenceElement(targetParameter); + return targetElement != null ? targetElement.GetFirstParentReferenceOfType() : null; + } + + ///Get all Tasks found in target + public static IEnumerable GetTasksInElement(IGraphElement target) { + var result = new List(); + JSONSerializer.SerializeAndExecuteNoCycles(target.GetType(), target, (o, d) => + { + if ( o is Task ) { result.Add((Task)o); } + }); + return result; + } + + ///Get all BBParameters found in target + public static IEnumerable GetParametersInElement(IGraphElement target) { + var result = new List(); + JSONSerializer.SerializeAndExecuteNoCycles(target.GetType(), target, (o, d) => + { + if ( o is BBParameter ) { result.Add((BBParameter)o); } + }); + return result; + } + + ///---------------------------------------------------------------------------------------------- + + ///Add a new node to this graph + public T AddNode() where T : Node { return (T)AddNode(typeof(T)); } + public T AddNode(Vector2 pos) where T : Node { return (T)AddNode(typeof(T), pos); } + public Node AddNode(System.Type nodeType) { return AddNode(nodeType, new Vector2(0, 0)); } + public Node AddNode(System.Type nodeType, Vector2 pos) { + + if ( !nodeType.RTIsSubclassOf(baseNodeType) ) { + Logger.LogWarning(nodeType + " can't be added to " + this.GetType().FriendlyName() + " graph.", LogTag.GRAPH, this); + return null; + } + + var newNode = Node.Create(this, nodeType, pos); + + UndoUtility.RecordObject(this, "New Node"); + + allNodes.Add(newNode); + + if ( primeNode == null ) { + primeNode = newNode; + } + + UpdateNodeIDs(false); + UndoUtility.SetDirty(this); + + return newNode; + } + + ///Disconnects and then removes a node from this graph + public void RemoveNode(Node node, bool recordUndo = true, bool force = false) { + + if ( !force && node.GetType().RTIsDefined(true) ) { + if ( allNodes.Where(n => n.GetType() == node.GetType()).Count() == 1 ) { + return; + } + } + + if ( !allNodes.Contains(node) ) { + Logger.LogWarning("Node is not part of this graph.", "NodeCanvas", this); + return; + } + + if ( !Application.isPlaying ) { + //auto reconnect parent & child of deleted node. Just a workflow convenience + if ( isTree && node.inConnections.Count == 1 && node.outConnections.Count == 1 ) { + var relinkNode = node.outConnections[0].targetNode; + if ( relinkNode != node.inConnections[0].sourceNode ) { + RemoveConnection(node.outConnections[0]); + node.inConnections[0].SetTargetNode(relinkNode); + } + } + } + +#if UNITY_EDITOR + if ( NodeCanvas.Editor.GraphEditorUtility.activeElement == node ) { + NodeCanvas.Editor.GraphEditorUtility.activeElement = null; + } +#endif + + //callback + node.OnDestroy(); + + //disconnect parents + for ( var i = node.inConnections.Count; i-- > 0; ) { + RemoveConnection(node.inConnections[i]); + } + + //disconnect children + for ( var i = node.outConnections.Count; i-- > 0; ) { + RemoveConnection(node.outConnections[i]); + } + + if ( recordUndo ) { UndoUtility.RecordObject(this, "Delete Node"); } + + allNodes.Remove(node); + + if ( node == primeNode ) { + primeNode = GetNodeWithID(primeNode.ID + 1); + } + + UpdateNodeIDs(false); + UndoUtility.SetDirty(this); + } + + ///Connect two nodes together to a specific port index of the source and target node. Leave index at -1 to add at the end of the list. + public Connection ConnectNodes(Node sourceNode, Node targetNode, int sourceIndex = -1, int targetIndex = -1) { + + if ( Node.IsNewConnectionAllowed(sourceNode, targetNode) == false ) { + return null; + } + + UndoUtility.RecordObject(this, "Add Connection"); + + var newConnection = Connection.Create(sourceNode, targetNode, sourceIndex, targetIndex); + + UpdateNodeIDs(false); + UndoUtility.SetDirty(this); + + return newConnection; + } + + ///Removes a connection + public void RemoveConnection(Connection connection, bool recordUndo = true) { + + //for live editing + if ( Application.isPlaying ) { + connection.Reset(); + } + + if ( recordUndo ) { UndoUtility.RecordObject(this, "Remove Connection"); } + + //callbacks + connection.OnDestroy(); + connection.sourceNode.OnChildDisconnected(connection.sourceNode.outConnections.IndexOf(connection)); + connection.targetNode.OnParentDisconnected(connection.targetNode.inConnections.IndexOf(connection)); + + connection.sourceNode.outConnections.Remove(connection); + connection.targetNode.inConnections.Remove(connection); + +#if UNITY_EDITOR + if ( NodeCanvas.Editor.GraphEditorUtility.activeElement == connection ) { + NodeCanvas.Editor.GraphEditorUtility.activeElement = null; + } +#endif + + UpdateNodeIDs(false); + UndoUtility.SetDirty(this); + } + + ///Makes a copy of provided nodes and if targetGraph is provided, puts those new nodes in that graph. + public static List CloneNodes(List originalNodes, Graph targetGraph = null, Vector2 originPosition = default(Vector2)) { + + if ( targetGraph != null ) { + if ( originalNodes.Any(n => n.GetType().IsSubclassOf(targetGraph.baseNodeType) == false) ) { + return null; + } + } + + var newNodes = new List(); + var linkInfo = new Dictionary>(); + + //duplicate all nodes first + foreach ( var original in originalNodes ) { + var newNode = targetGraph != null ? original.Duplicate(targetGraph) : JSONSerializer.Clone(original); + newNodes.Add(newNode); + //store the out connections that need dulpicate along with the indeces of source and target + foreach ( var c in original.outConnections ) { + var sourceIndex = originalNodes.IndexOf(c.sourceNode); + var targetIndex = originalNodes.IndexOf(c.targetNode); + linkInfo[c] = new KeyValuePair(sourceIndex, targetIndex); + } + } + + //duplicate all connections that we stored as 'need duplicating' providing new source and target + foreach ( var linkPair in linkInfo ) { + if ( linkPair.Value.Value != -1 ) { //we check this to see if the target node is part of the duplicated nodes since IndexOf returns -1 if element is not part of the list + var newSource = newNodes[linkPair.Value.Key]; + var newTarget = newNodes[linkPair.Value.Value]; + linkPair.Key.Duplicate(newSource, newTarget); + } + } + + //position nodes nicely + if ( originPosition != default(Vector2) && newNodes.Count > 0 ) { + if ( newNodes.Count == 1 ) { + newNodes[0].position = originPosition; + } else { + var diff = newNodes[0].position - originPosition; + newNodes[0].position = originPosition; + for ( var i = 1; i < newNodes.Count; i++ ) { + newNodes[i].position -= diff; + } + } + } + + //revalidate all new nodes in their new graph + if ( targetGraph != null ) { + for ( var i = 0; i < newNodes.Count; i++ ) { + newNodes[i].Validate(targetGraph); + } + } + + return newNodes; + } + + ///Clears the whole graph + public void ClearGraph() { + UndoUtility.RecordObject(this, "Clear"); + canvasGroups = null; + foreach ( var node in allNodes.ToArray() ) { + RemoveNode(node); + } + UndoUtility.SetDirty(this); + } + + [System.Obsolete("Use 'Graph.StartGraph' with the 'Graph.UpdateMode' parameter.")] + public void StartGraph(Component newAgent, IBlackboard newBlackboard, bool autoUpdate, System.Action callback = null) { + StartGraph(newAgent, newBlackboard, autoUpdate ? UpdateMode.NormalUpdate : UpdateMode.Manual, callback); + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs.meta new file mode 100644 index 0000000..0b89ebb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Graph.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: b7a13e6d93f6e2a4d97c9c30118c2f9a +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs new file mode 100644 index 0000000..9e65ee3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs @@ -0,0 +1,622 @@ +using System.Collections.Generic; +using NodeCanvas.Framework.Internal; +using UnityEngine; +using UnityEngine.Serialization; +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework +{ + + /// A component that is used to control a Graph in respects to the gameobject attached to + public abstract class GraphOwner : MonoBehaviour, ISerializationCallbackReceiver + { + + ///---------------------------------------------------------------------------------------------- + + public enum EnableAction + { + EnableBehaviour, + DoNothing + } + + public enum DisableAction + { + DisableBehaviour, + PauseBehaviour, + DoNothing + } + + public enum FirstActivation + { + OnEnable, + OnStart, + Async + } + + ///---------------------------------------------------------------------------------------------- + [SerializeField] private SerializationPair[] _serializedExposedParameters; + ///The list of exposed parameters if any + public List exposedParameters { get; set; } + + //serialize exposed parameters + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( exposedParameters == null || exposedParameters.Count == 0 ) { + _serializedExposedParameters = null; + return; + } + _serializedExposedParameters = new SerializationPair[exposedParameters.Count]; + for ( var i = 0; i < _serializedExposedParameters.Length; i++ ) { + var serializedParam = new SerializationPair(); + serializedParam._json = JSONSerializer.Serialize(typeof(ExposedParameter), exposedParameters[i], serializedParam._references); + _serializedExposedParameters[i] = serializedParam; + } + } + + //deserialize exposed parameters + void ISerializationCallbackReceiver.OnAfterDeserialize() { + if ( _serializedExposedParameters != null ) { + if ( exposedParameters == null ) { exposedParameters = new List(); } else { exposedParameters.Clear(); } + for ( var i = 0; i < _serializedExposedParameters.Length; i++ ) { + var exposedParam = JSONSerializer.Deserialize(_serializedExposedParameters[i]._json, _serializedExposedParameters[i]._references); + exposedParameters.Add(exposedParam); + } + } + } + ///---------------------------------------------------------------------------------------------- + + + ///Raised when the assigned behaviour state is changed (start/pause/stop) + public static event System.Action onOwnerBehaviourStateChange; + ///Raised only once when "Start" is called, then is set to null + public event System.Action onMonoBehaviourStart; + + [SerializeField, FormerlySerializedAs("boundGraphSerialization")] + private string _boundGraphSerialization; + [SerializeField, FormerlySerializedAs("boundGraphObjectReferences")] + private List _boundGraphObjectReferences; + [SerializeField] + private GraphSource _boundGraphSource = new GraphSource(); + + [SerializeField, FormerlySerializedAs("firstActivation")] + [Tooltip("When the graph will first activate. Async mode will load the graph on a separate thread (thus no spikes), but the graph will activate a few frames later.")] + private FirstActivation _firstActivation = FirstActivation.OnEnable; + [SerializeField, FormerlySerializedAs("enableAction")] + [Tooltip("What will happen when the GraphOwner is enabled")] + private EnableAction _enableAction = EnableAction.EnableBehaviour; + [SerializeField, FormerlySerializedAs("disableAction")] + [Tooltip("What will happen when the GraphOwner is disabled")] + private DisableAction _disableAction = DisableAction.DisableBehaviour; + [SerializeField, Tooltip("If enabled, bound graph prefab overrides in instances will not be possible")] + private bool _lockBoundGraphPrefabOverrides = true; + [SerializeField, Tooltip("If enabled, all subgraphs will be pre-initialized in Awake along with the root graph, but this may have a loading performance cost")] + private bool _preInitializeSubGraphs; + [SerializeField, Tooltip("Specify when (if) the behaviour is updated. Changes to this only work when the behaviour starts, or re-starts")] + private Graph.UpdateMode _updateMode = Graph.UpdateMode.NormalUpdate; + + private Dictionary instances = new Dictionary(); + + ///---------------------------------------------------------------------------------------------- + + ///The graph assigned + abstract public Graph graph { get; set; } + ///The blackboard assigned + abstract public IBlackboard blackboard { get; set; } + ///The type of graph that can be assigned + abstract public System.Type graphType { get; } + + public bool initialized { get; private set; } + public bool enableCalled { get; private set; } + public bool startCalled { get; private set; } + + ///The bound graph source data + public GraphSource boundGraphSource { + get { return _boundGraphSource; } + private set { _boundGraphSource = value; } + } + + ///The bound graph serialization if any + public string boundGraphSerialization { + get { return _boundGraphSerialization; } + private set { _boundGraphSerialization = value; } + } + + ///The bound graph object references if any (this is a reference list. Dont touch if you are not sure how :) ) + public List boundGraphObjectReferences { + get { return _boundGraphObjectReferences; } + private set { _boundGraphObjectReferences = value; } + } + + ///Is the bound graph locked to changes from prefab instances? + public bool lockBoundGraphPrefabOverrides { + get { return _lockBoundGraphPrefabOverrides && graphIsBound; } + set { _lockBoundGraphPrefabOverrides = value; } + } + + ///Will subgraphs be preinitialized along with the root graph? + public bool preInitializeSubGraphs { + get { return _preInitializeSubGraphs; } + set { _preInitializeSubGraphs = value; } + } + + ///When will the first activation be (if EnableBehaviour at all) + public FirstActivation firstActivation { + get { return _firstActivation; } + set { _firstActivation = value; } + } + + ///What will happen OnEnable + public EnableAction enableAction { + get { return _enableAction; } + set { _enableAction = value; } + } + + ///What will happen OnDisable + public DisableAction disableAction { + get { return _disableAction; } + set { _disableAction = value; } + } + + ///When is the behaviour updated? Changes to this only work when the behaviour starts (or re-starts) + public Graph.UpdateMode updateMode { + get { return _updateMode; } + set { _updateMode = value; } + } + + ///Do we have a bound graph serialization? + public bool graphIsBound => !string.IsNullOrEmpty(boundGraphSerialization); + + ///Is the assigned graph currently running? + public bool isRunning => graph != null ? graph.isRunning : false; + + ///Is the assigned graph currently paused? + public bool isPaused => graph != null ? graph.isPaused : false; + + ///The time is seconds the graph is running + public float elapsedTime => graph != null ? graph.elapsedTime : 0; + + ///---------------------------------------------------------------------------------------------- + + //Gets the instance graph for this owner from the provided graph + protected Graph GetInstance(Graph originalGraph) { + + if ( originalGraph == null ) { + return null; + } + + //in editor the instance is always the original! + if ( !Application.isPlaying ) { + return originalGraph; + } + + //if its already a stored instance, return the instance + if ( instances.ContainsValue(originalGraph) ) { + return originalGraph; + } + + + //if it's not a strored instance create, store and return a new instance. + if ( !instances.TryGetValue(originalGraph, out Graph instance) ) { + instance = Graph.Clone(originalGraph, null); + instances[originalGraph] = instance; + } + + return instance; + } + + ///Makes and returns the runtime instance based on the current graph set. + public Graph MakeRuntimeGraphInstance() { return graph = GetInstance(graph); } + + ///Start the graph assigned. It will be auto updated. + public void StartBehaviour() { StartBehaviour(updateMode, null); } + ///Start the graph assigned providing a callback for when it's finished if at all. + public void StartBehaviour(System.Action callback) { StartBehaviour(updateMode, callback); } + ///Start the graph assigned, optionally autoUpdated or not, and providing a callback for when it's finished if at all. + public void StartBehaviour(Graph.UpdateMode updateMode, System.Action callback = null) { + graph = GetInstance(graph); + if ( graph != null ) { + graph.StartGraph(this, blackboard, updateMode, callback); + onOwnerBehaviourStateChange?.Invoke(this); + } + } + + ///Pause the current running graph + public void PauseBehaviour() { + if ( graph != null ) { + graph.Pause(); + onOwnerBehaviourStateChange?.Invoke(this); + } + } + + ///Stop the current running graph + public void StopBehaviour(bool success = true) { + if ( graph != null ) { + graph.Stop(success); + onOwnerBehaviourStateChange?.Invoke(this); + } + } + + ///Manually update the assigned graph + public void UpdateBehaviour() { + graph?.UpdateGraph(); + } + + ///The same as calling Stop, Start Behaviour + public void RestartBehaviour() { + StopBehaviour(); + StartBehaviour(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Send an event to the graph. Note that this overload has no sender argument thus sender will be null. + public void SendEvent(string eventName) { graph?.SendEvent(eventName, null, null); } + ///Send an event to the graph + public void SendEvent(string eventName, object value, object sender) { graph?.SendEvent(eventName, value, sender); } + ///Send an event to the graph + public void SendEvent(string eventName, T eventValue, object sender) { graph?.SendEvent(eventName, eventValue, sender); } + + ///---------------------------------------------------------------------------------------------- + + ///Return an exposed parameter value + public T GetExposedParameterValue(string name) { + var param = exposedParameters.Find(x => x.varRefBoxed != null && x.varRefBoxed.name == name); + return param != null ? ( param as ExposedParameter ).value : default; + } + + ///Set an exposed parameter value + public void SetExposedParameterValue(string name, T value) { + var param = exposedParameters?.Find(x => x.varRefBoxed != null && x.varRefBoxed.name == name); + if ( param == null ) { param = MakeNewExposedParameter(name); } + if ( param != null ) { ( param as ExposedParameter ).value = value; } + } + + ///Make and return a new exposed parameter from a blackboard variable name and bind it + public ExposedParameter MakeNewExposedParameter(string name) { + if ( exposedParameters == null ) { exposedParameters = new List(); } + var variable = graph.blackboard.GetVariable(name); + if ( variable != null && variable.isExposedPublic && !variable.isPropertyBound ) { + var exposedParam = ExposedParameter.CreateInstance(variable); + exposedParam.Bind(graph.blackboard); + exposedParameters.Add(exposedParam); + return exposedParam; + } + ParadoxNotion.Services.Logger.LogWarning(string.Format("Exposed Graph Variable named '{0}' was not found", name)); + return null; + } + + ///---------------------------------------------------------------------------------------------- + + //Initialize the bound or asset graph + protected void Awake() { + Initialize(); + } + + ///Initialize the bound or asset graph. This is called in Awake automatically, but it's public so that you can call this manually to pre-initialize when gameobject is deactive, if required. + public void Initialize() { + + Debug.Assert(Application.isPlaying, "GraphOwner Initialize should have been called in runtime only"); + + if ( initialized ) { + return; + } + + if ( graph == null && !graphIsBound ) { + return; + } + + GraphSource finalSource; + string finalJson; + List finalReferences; + + var newGraph = (Graph)ScriptableObject.CreateInstance(graphType); + + if ( graphIsBound ) { + //Bound + newGraph.name = graphType.Name; + finalSource = boundGraphSource; + finalJson = boundGraphSerialization; + finalReferences = boundGraphObjectReferences; + instances[newGraph] = newGraph; + } else { + //Asset reference + newGraph.name = graph.name; + finalSource = graph.GetGraphSource(); + finalJson = graph.GetSerializedJsonData(); + finalReferences = graph.GetSerializedReferencesData(); + instances[graph] = newGraph; + } + + this.graph = newGraph; + + var loadData = new GraphLoadData(); + loadData.source = finalSource; + loadData.json = finalJson; + loadData.references = finalReferences; + loadData.agent = this; + loadData.parentBlackboard = this.blackboard; + loadData.preInitializeSubGraphs = this.preInitializeSubGraphs; + + if ( firstActivation == FirstActivation.Async ) { + graph.LoadOverwriteAsync(loadData, () => + { + BindExposedParameters(); + //remark: activeInHierarchy is checked in case user instantiate and disable gameobject instantly for pooling reasons + if ( !isRunning && enableAction == EnableAction.EnableBehaviour && gameObject.activeInHierarchy ) { + StartBehaviour(); + InvokeStartEvent(); + } + initialized = true; + }); + } else { + graph.LoadOverwrite(loadData); + BindExposedParameters(); + initialized = true; + } + } + + ///Bind exposed parameters to local graph blackboard variables + public void BindExposedParameters() { + if ( exposedParameters != null && graph != null ) { + for ( var i = 0; i < exposedParameters.Count; i++ ) { + exposedParameters[i].Bind(graph.blackboard); + } + } + } + + ///UnBind exposed parameters any local graph blackboard variables + public void UnBindExposedParameters() { + if ( exposedParameters != null ) { + for ( var i = 0; i < exposedParameters.Count; i++ ) { + exposedParameters[i].UnBind(); + } + } + } + + //handle enable behaviour setting + protected void OnEnable() { + if ( firstActivation == FirstActivation.OnEnable || enableCalled ) { + if ( ( !isRunning || isPaused ) && enableAction == EnableAction.EnableBehaviour ) { + StartBehaviour(); + } + } + + enableCalled = true; + } + + //... + protected void Start() { + if ( firstActivation == FirstActivation.OnStart ) { + if ( !isRunning && enableAction == EnableAction.EnableBehaviour ) { + StartBehaviour(); + } + } + + InvokeStartEvent(); + startCalled = true; + } + + //This can actually be invoked in Start but if loading async it also needs to be called. + //In either case, it's called only once. + void InvokeStartEvent() { + //since "Start" is called once anyway we clear the event + if ( onMonoBehaviourStart != null ) { + onMonoBehaviourStart(); + onMonoBehaviourStart = null; + } + } + + //handle disable behaviour setting + protected void OnDisable() { + + if ( disableAction == DisableAction.DisableBehaviour ) { + StopBehaviour(); + } + + if ( disableAction == DisableAction.PauseBehaviour ) { + PauseBehaviour(); + } + } + + //Destroy instanced graphs as well + protected void OnDestroy() { + + if ( ParadoxNotion.Services.Threader.applicationIsPlaying ) { + StopBehaviour(); + } + + foreach ( var instanceGraph in instances.Values ) { + foreach ( var subGraph in instanceGraph.GetAllInstancedNestedGraphs() ) { + Destroy(subGraph); + } + Destroy(instanceGraph); + } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- + ///---------------------------------------------------------------------------------------------- +#if UNITY_EDITOR + + protected Graph boundGraphInstance; + + ///Editor. Called after assigned graph is serialized. + public void OnAfterGraphSerialized(Graph serializedGraph) { + //If the graph is bound, we store the serialization data here. + if ( this.graphIsBound && this.boundGraphInstance == serializedGraph ) { + + //--- This is basically only for showing the log... + if ( UnityEditor.PrefabUtility.IsPartOfPrefabInstance(this) ) { + var boundProp = new UnityEditor.SerializedObject(this).FindProperty(nameof(_boundGraphSerialization)); + if ( !boundProp.prefabOverride && boundGraphSerialization != serializedGraph.GetSerializedJsonData() ) { + if ( lockBoundGraphPrefabOverrides ) { + ParadoxNotion.Services.Logger.LogWarning("The Bound Graph is Prefab Locked!\nChanges you make are not saved!\nUnlock the Prefab Instance, or Edit the Prefab Asset.", LogTag.EDITOR, this); + return; + } else { + ParadoxNotion.Services.Logger.LogWarning("Prefab Bound Graph just got overridden!", LogTag.EDITOR, this); + } + } + } + //--- + + ParadoxNotion.Design.UndoUtility.RecordObjectComplete(this, ParadoxNotion.Design.UndoUtility.GetLastOperationNameOr("Bound Graph Change")); + boundGraphSource = serializedGraph.GetGraphSource(); + boundGraphSerialization = serializedGraph.GetSerializedJsonData(); + boundGraphObjectReferences = serializedGraph.GetSerializedReferencesData(); + ParadoxNotion.Design.UndoUtility.SetDirty(this); + } + } + + ///Editor. Validate. + protected void OnValidate() { Validate(); } + ///Editor. Validate. + public void Validate() { + + if ( !UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode ) { + //everything here is relevant to bound graphs only. + //we only do this for when the object is an instance or is edited in the prefab editor. + if ( !UnityEditor.EditorUtility.IsPersistent(this) && graphIsBound ) { + + if ( boundGraphInstance == null ) { + boundGraphInstance = (Graph)ScriptableObject.CreateInstance(graphType); + } + + boundGraphInstance.name = graphType.Name; + boundGraphInstance.SetGraphSourceMetaData(this.boundGraphSource); + boundGraphInstance.Deserialize(boundGraphSerialization, boundGraphObjectReferences, false); + boundGraphInstance.UpdateReferencesFromOwner(this); + boundGraphInstance.Validate(); + } else if ( graph != null ) { + graph.UpdateReferencesFromOwner(this); + graph.Validate(); + } + + // BindExposedParameters(); // DISABLE: was creating confusion when editing multiple graphowner instances using asset graphs and having different variable overrides + } + } + + ///Editor. Binds the target graph (null to delete current bound). + public void SetBoundGraphReference(Graph target) { + + if ( UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode ) { + Debug.LogError("SetBoundGraphReference method is an Editor only method!"); + return; + } + + //cleanup + graph = null; + boundGraphInstance = null; + if ( target == null ) { + boundGraphSource = null; + boundGraphSerialization = null; + boundGraphObjectReferences = null; + return; + } + + //serialize target and store boundGraphSerialization data + target.SelfSerialize(); + _boundGraphSerialization = target.GetSerializedJsonData(); + _boundGraphObjectReferences = target.GetSerializedReferencesData(); + _boundGraphSource = target.GetGraphSourceMetaDataCopy(); + Validate(); //validate to handle bound graph instance + } + + ///Reset unity callback + protected void Reset() { + blackboard = gameObject.GetComponent(); + if ( blackboard == null ) { + blackboard = gameObject.AddComponent(); + } + } + + //... + virtual protected void OnDrawGizmos() { + + } + + ///Forward Gizmos callback + virtual protected void OnDrawGizmosSelected() { + if ( Editor.GraphEditorUtility.activeElement != null ) { + var rootElement = Editor.GraphEditorUtility.activeElement.graph.GetFlatMetaGraph().FindReferenceElement(Editor.GraphEditorUtility.activeElement); + if ( rootElement != null ) { + foreach ( var task in rootElement.GetAllChildrenReferencesOfType() ) { + task.OnDrawGizmosSelected(); + } + } + } + } +#endif + + } + + + ///---------------------------------------------------------------------------------------------- + + ///The class where GraphOwners derive from + abstract public class GraphOwner : GraphOwner where T : Graph + { + + [SerializeField] + private T _graph; + [SerializeField] + private Object _blackboard; + + ///The current behaviour Graph assigned + sealed public override Graph graph { + get + { +#if UNITY_EDITOR + //In Editor only and if graph is bound, return the bound graph instance + if ( graphIsBound && !Application.isPlaying ) { + return boundGraphInstance; + } +#endif + //In runtime an instance of either boundGraphSerialization json or Asset Graph is created in awake + return _graph; + } + set { _graph = (T)value; } + } + + ///The current behaviour Graph assigned (same as .graph but of type T) + public T behaviour { + get { return (T)graph; } + set { graph = value; } + } + + ///The blackboard that the assigned behaviour will be Started with or currently using + sealed public override IBlackboard blackboard { + //check != null to handle unity object when component is removed from inspector + get { return _blackboard != null ? _blackboard as IBlackboard : null; } + set + { + if ( !ReferenceEquals(_blackboard, value) ) { + _blackboard = (Object)value; + graph?.UpdateReferences(this, value); + } + } + } + + ///The Graph type this Owner can be assigned + sealed public override System.Type graphType => typeof(T); + + ///Start a new behaviour on this owner + public void StartBehaviour(T newGraph) { StartBehaviour(newGraph, updateMode, null); } + ///Start a new behaviour on this owner and get a callback for when it's finished if at all + public void StartBehaviour(T newGraph, System.Action callback) { StartBehaviour(newGraph, updateMode, callback); } + ///Start a new behaviour on this owner and optionally autoUpdated or not and optionally get a callback for when it's finished if at all + public void StartBehaviour(T newGraph, Graph.UpdateMode updateMode, System.Action callback = null) { + SwitchBehaviour(newGraph, updateMode, callback); + } + + ///Use to switch the behaviour dynamicaly at runtime + public void SwitchBehaviour(T newGraph) { SwitchBehaviour(newGraph, updateMode, null); } + ///Use to switch or set graphs at runtime and optionaly get a callback when it's finished if at all + public void SwitchBehaviour(T newGraph, System.Action callback) { SwitchBehaviour(newGraph, updateMode, callback); } + ///Use to switch or set graphs at runtime and optionaly get a callback when it's finished if at all + public void SwitchBehaviour(T newGraph, Graph.UpdateMode updateMode, System.Action callback = null) { + StopBehaviour(); + graph = newGraph; + StartBehaviour(updateMode, callback); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs.meta new file mode 100644 index 0000000..370ae9a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/GraphOwner.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 8f1b46c6e9f5f2a4cb0ec4c063dbfd18 +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b5eeec78a0081094cb8dfeb83808d762, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs new file mode 100644 index 0000000..3605760 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs @@ -0,0 +1,245 @@ +using System.Linq; +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.Framework +{ + + public static class IGraphAssignableExtensions + { + ///Checks and possibly makes and returns runtime instance + public static Graph CheckInstance(this IGraphAssignable assignable) { + if ( assignable.subGraph == assignable.currentInstance ) { + return assignable.currentInstance; + } + + Graph instance = null; + if ( assignable.instances == null ) { assignable.instances = new System.Collections.Generic.Dictionary(); } + if ( !assignable.instances.TryGetValue(assignable.subGraph, out instance) ) { + instance = Graph.Clone(assignable.subGraph, assignable.graph); + assignable.instances[assignable.subGraph] = instance; + } + + assignable.subGraph = instance; + assignable.currentInstance = instance; + return instance; + } + + ///Utility to start sub graph (makes instance, writes mapping, starts graph and on stop reads mapping) + public static bool TryStartSubGraph(this IGraphAssignable assignable, Component agent, System.Action callback = null) { + assignable.currentInstance = assignable.CheckInstance(); + if ( assignable.currentInstance != null ) { + assignable.TryWriteAndBindMappedVariables(); + //we always start with the current graphs blackboard parent bb as the subgraphs parent bb + assignable.currentInstance.StartGraph(agent, assignable.graph.blackboard.parent, Graph.UpdateMode.Manual, (result) => + { + if ( assignable.status == Status.Running ) { assignable.TryReadAndUnbindMappedVariables(); } + if ( callback != null ) { callback(result); } + }); + return true; + } + return false; + } + + ///Stop subgraph if currentInstance exists + public static bool TryStopSubGraph(this IGraphAssignable assignable) { + if ( assignable.currentInstance != null ) { + assignable.currentInstance.Stop(); + return true; + } + return false; + } + + ///Pause subgraph if currentInstance exists + public static bool TryPauseSubGraph(this IGraphAssignable assignable) { + if ( assignable.currentInstance != null ) { + assignable.currentInstance.Pause(); + return true; + } + return false; + } + + ///Resume subgraph if currentInstance exists + public static bool TryResumeSubGraph(this IGraphAssignable assignable) { + if ( assignable.currentInstance != null ) { + assignable.currentInstance.Resume(); + return true; + } + return false; + } + + ///Update subgraph if currentInstance exists + public static bool TryUpdateSubGraph(this IGraphAssignable assignable) { + if ( assignable.currentInstance != null ) { + if ( assignable.currentInstance.isRunning ) { + assignable.currentInstance.UpdateGraph(assignable.graph.deltaTime); + return true; + } + } + return false; + } + + ///Write mapped variables to subgraph (write in) and bind for read out + public static void TryWriteAndBindMappedVariables(this IGraphAssignable assignable) { + if ( !assignable.currentInstance.allowBlackboardOverrides || assignable.variablesMap == null ) { return; } + for ( var i = 0; i < assignable.variablesMap.Count; i++ ) { + var bbParam = assignable.variablesMap[i]; + if ( bbParam.isNone ) { continue; } + var targetSubVariable = assignable.currentInstance.blackboard.GetVariableByID(bbParam.targetSubGraphVariableID); + if ( targetSubVariable != null && targetSubVariable.isExposedPublic && !targetSubVariable.isPropertyBound ) { + if ( bbParam.canWrite ) { targetSubVariable.value = bbParam.value; } + if ( bbParam.canRead ) { + targetSubVariable.onValueChanged -= bbParam.SetValue; + targetSubVariable.onValueChanged += bbParam.SetValue; + } + } + } + } + + ///Read mapped variables from subgraph (read out) and unbind read out + public static void TryReadAndUnbindMappedVariables(this IGraphAssignable assignable) { + if ( !assignable.currentInstance.allowBlackboardOverrides || assignable.variablesMap == null ) { return; } + for ( var i = 0; i < assignable.variablesMap.Count; i++ ) { + var bbParam = assignable.variablesMap[i]; + if ( bbParam.isNone ) { continue; } + var targetSubVariable = assignable.currentInstance.blackboard.GetVariableByID(bbParam.targetSubGraphVariableID); + if ( targetSubVariable != null && targetSubVariable.isExposedPublic && !targetSubVariable.isPropertyBound ) { + if ( bbParam.canRead ) { bbParam.value = targetSubVariable.value; } + targetSubVariable.onValueChanged -= bbParam.SetValue; + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Validate the variables mapping + public static void ValidateSubGraphAndParameters(this IGraphAssignable assignable) { + if ( !ParadoxNotion.Services.Threader.applicationIsPlaying ) { + if ( assignable.subGraph == null || !assignable.subGraph.allowBlackboardOverrides || assignable.subGraph.blackboard.variables.Count == 0 ) { + assignable.variablesMap = null; + } + } + } + + // ///Link subgraph variables to parent graph variables matching name and type. This is not used. + // public static void AutoLinkByName(this IGraphAssignable assignable) { + // if ( assignable.subGraph == null || assignable.variablesMap == null ) { return; } + // foreach ( var bbParam in assignable.variablesMap ) { + // var thatVariable = assignable.subGraph.blackboard.GetVariableByID(bbParam.targetSubGraphVariableID); + // if ( thatVariable != null && thatVariable.isExposedPublic && !thatVariable.isPropertyBound ) { + // var thisVariable = assignable.graph.blackboard.GetVariable(thatVariable.name, thatVariable.varType); + // if ( thisVariable != null ) { + // bbParam.SetType(thatVariable.varType); + // bbParam.name = thatVariable.name; + // } + // } + // } + // } + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR + + //Shows blackboard variables mapping + public static void ShowVariablesMappingGUI(this IGraphAssignable assignable) { + + if ( assignable.subGraph == null || !assignable.subGraph.allowBlackboardOverrides ) { + assignable.variablesMap = null; + return; + } + + ParadoxNotion.Design.EditorUtils.Separator(); + ParadoxNotion.Design.EditorUtils.CoolLabel("SubGraph Variables Mapping"); + + var subTreeVariables = assignable.subGraph.blackboard.variables.Values; + if ( subTreeVariables.Count == 0 || !subTreeVariables.Any(v => v.isExposedPublic) ) { + UnityEditor.EditorGUILayout.HelpBox("SubGraph has no exposed public variables. You can make variables exposed public through the 'gear' menu of a variable.", UnityEditor.MessageType.Info); + assignable.variablesMap = null; + return; + } + + UnityEditor.EditorGUILayout.HelpBox("Map SubGraph exposed variables to this graph variables.\nUse the arrow buttons on the right of each parameter to enable WriteIn and/or ReadOut. WriteIn takes place when the SubGraph starts. ReadOut takes place continously while the SubGraph is running.", UnityEditor.MessageType.Info); + + foreach ( var variable in subTreeVariables ) { + + if ( variable is Variable ) { continue; } + if ( !variable.isExposedPublic || variable.isPropertyBound ) { continue; } + + if ( assignable.variablesMap == null ) { + assignable.variablesMap = new System.Collections.Generic.List(); + } + + var bbParam = assignable.variablesMap.Find(x => x.targetSubGraphVariableID == variable.ID); + if ( bbParam == null ) { + GUILayout.BeginHorizontal(); + GUI.enabled = false; + EditorUtils.DrawEditorFieldDirect(new GUIContent(variable.name), variable.value, variable.varType, default(InspectedFieldInfo)); + GUI.enabled = true; + int tmp = 0; + if ( GUILayout.Button(EditorUtils.GetTempContent("▽", null, "Write (In)"), Styles.centerLabel, GUILayout.Width(13)) ) { tmp = 1; } + UnityEditor.EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), UnityEditor.MouseCursor.Link); + if ( GUILayout.Button(EditorUtils.GetTempContent("△", null, "Read (Out)"), Styles.centerLabel, GUILayout.Width(13)) ) { tmp = -1; } + if ( tmp != 0 ) { + UndoUtility.RecordObject(assignable.graph, "Override Variable"); + bbParam = new BBMappingParameter(variable); + bbParam.canWrite = tmp == 1; + bbParam.canRead = tmp == -1; + bbParam.useBlackboard = tmp == -1; + bbParam.value = variable.value; + bbParam.bb = assignable.graph.blackboard; + assignable.variablesMap.Add(bbParam); + UndoUtility.SetDirty(assignable.graph); + } + UnityEditor.EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), UnityEditor.MouseCursor.Link); + GUILayout.EndHorizontal(); + continue; + } + + if ( bbParam.varType != variable.varType && ( bbParam.canRead || bbParam.canWrite ) ) { bbParam.SetType(variable.varType); } + + GUILayout.BeginHorizontal(); + + GUI.enabled = bbParam.canRead || bbParam.canWrite; + NodeCanvas.Editor.BBParameterEditor.ParameterField(variable.name, bbParam); + if ( bbParam.canRead && !bbParam.useBlackboard ) { EditorUtils.MarkLastFieldWarning("The parameter is set to Read Out, but is not linked to any Variable."); } + GUI.enabled = true; + + if ( GUILayout.Button(EditorUtils.GetTempContent(bbParam.canWrite ? "▼" : "▽", null, "Write (In)"), Styles.centerLabel, GUILayout.Width(13)) ) { + UndoUtility.RecordObject(assignable.graph, "Set Write In"); + bbParam.canWrite = !bbParam.canWrite; + UndoUtility.SetDirty(assignable.graph); + } + UnityEditor.EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), UnityEditor.MouseCursor.Link); + if ( GUILayout.Button(EditorUtils.GetTempContent(bbParam.canRead ? "▲" : "△", null, "Read (Out)"), Styles.centerLabel, GUILayout.Width(13)) ) { + UndoUtility.RecordObject(assignable.graph, "Set Read Out"); + bbParam.canRead = !bbParam.canRead; + UndoUtility.SetDirty(assignable.graph); + } + UnityEditor.EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), UnityEditor.MouseCursor.Link); + if ( !bbParam.canRead && !bbParam.canWrite ) { + UndoUtility.RecordObject(assignable.graph, "Remove Override"); + assignable.variablesMap.Remove(bbParam); + UndoUtility.SetDirty(assignable.graph); + } + + GUILayout.EndHorizontal(); + } + + if ( assignable.variablesMap != null ) { + for ( var i = assignable.variablesMap.Count; i-- > 0; ) { + var bbParam = assignable.variablesMap[i]; + var variable = assignable.subGraph.blackboard.GetVariableByID(bbParam.targetSubGraphVariableID); + if ( variable == null || !variable.isExposedPublic || variable.isPropertyBound ) { + assignable.variablesMap.RemoveAt(i); + UndoUtility.SetDirty(assignable.graph); + } + } + } + } +#endif + + ///---------------------------------------------------------------------------------------------- + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs.meta new file mode 100644 index 0000000..2711131 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/IGraphAssignableExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8907226ec155c034bbef73d47d79efe9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs new file mode 100644 index 0000000..941194b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs @@ -0,0 +1,73 @@ +using System.Collections.Generic; + +namespace NodeCanvas.Framework +{ + + ///Basically Nodes and Connections + public interface IGraphElement + { + string name { get; } + string UID { get; } + Graph graph { get; } + Status status { get; } + } + + ///An interface to update nodes that need concurent updating apart from their normal 'Execution'. + public interface IUpdatable : IGraphElement + { + void Update(); + } + + ///Denotes that the node can be invoked in means outside of it's 'Execution' scope. + public interface IInvokable : IGraphElement + { + string GetInvocationID(); + object Invoke(params object[] args); + void InvokeAsync(System.Action callback, params object[] args); + } + + ///Denotes that the node holds a nested graph. + public interface IGraphAssignable : IGraphElement + { + Graph subGraph { get; set; } + Graph currentInstance { get; set; } + Dictionary instances { get; set; } + BBParameter subGraphParameter { get; } + List variablesMap { get; set; } + } + + ///Denotes that the node holds a nested graph of type T + public interface IGraphAssignable : IGraphAssignable where T : Graph + { + new T subGraph { get; set; } + new T currentInstance { get; set; } + } + + ///Denotes that the node can be assigned a Task and it's functionality is based on that task. + public interface ITaskAssignable : IGraphElement + { + Task task { get; set; } + } + + ///Use the generic ITaskAssignable when the Task type is known + public interface ITaskAssignable : ITaskAssignable where T : Task { } + + ///Just a simple way to have a link draw to target reference if any for nodes that do have a node reference + public interface IHaveNodeReference : IGraphElement + { + INodeReference targetReference { get; } + } + + ///Interface to handle reflection based wrappers + public interface IReflectedWrapper + { + ParadoxNotion.Serialization.ISerializedReflectedInfo GetSerializedInfo(); + } + + //---------------------------------------------------------------------------------------------- + [System.Obsolete("This is no longer used nor required")] + public interface ISubTasksContainer { Task[] GetSubTasks(); } + [System.Obsolete("This is no longer used nor required")] + public interface ISubParametersContainer { BBParameter[] GetSubParameters(); } + //---------------------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs.meta new file mode 100644 index 0000000..13caf69 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Interfaces.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 7df7b6321cd86d0498cfa6a4f8f4325c +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal.meta new file mode 100644 index 0000000..1793203 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c974f26ac3349854485db396bc624a6e +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs new file mode 100644 index 0000000..4ad8ca0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace NodeCanvas.Framework.Internal +{ + ///Contains data that a graph can load/deserialize from AND initialize. Can be passed to Graph.LoadOverwrite or Graph.LoadOverwriteAsync + public struct GraphLoadData + { + public GraphSource source; + public string json; + public List references; + public UnityEngine.Component agent; + public IBlackboard parentBlackboard; + public bool preInitializeSubGraphs; + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs.meta new file mode 100644 index 0000000..13267b5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphLoadData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f47b37faf0fc5df4da400f0bba0d35ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs new file mode 100644 index 0000000..94f5df8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs @@ -0,0 +1,144 @@ +using System.Collections.Generic; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEngine; + +namespace NodeCanvas.Framework.Internal +{ + ///Graph data and model used for serialization + [System.Serializable, fsDeserializeOverwrite] + public class GraphSource : ISerializationCollector + { + + ///---------------------------------------------------------------------------------------------- + ///We are already parsing everything on serialization/deserialization, so we might just as well collect things at the same time. + public List allTasks { get; private set; } + public List allParameters { get; private set; } + + void ISerializationCollector.OnPush(ISerializationCollector parent) { + allTasks = new List(); + allParameters = new List(); + } + + void ISerializationCollector.OnCollect(ISerializationCollectable child, int depth) { + if ( child is Task ) { allTasks.Add((Task)child); } + if ( child is BBParameter ) { allParameters.Add((BBParameter)child); } + } + + void ISerializationCollector.OnPop(ISerializationCollector parent) { } + ///---------------------------------------------------------------------------------------------- + + + public const float FRAMEWORK_VERSION = 3.32f; + + [SerializeField, fsSerializeAs("version"), fsWriteOnly, fsIgnoreInBuild] + private float _version; + [SerializeField, fsSerializeAs("category"), fsWriteOnly, fsIgnoreInBuild] + private string _category; + [SerializeField, fsSerializeAs("comments"), fsWriteOnly, fsIgnoreInBuild] + private string _comments; + [SerializeField, fsSerializeAs("translation"), fsWriteOnly, fsIgnoreInBuild] + private Vector2 _translation; + [SerializeField, fsSerializeAs("zoomFactor"), fsWriteOnly, fsIgnoreInBuild] + private float _zoomFactor; + + [fsSerializeAs("type")] + private string _type; + [fsSerializeAs("nodes")] + private List _nodes; + [fsSerializeAs("connections")] + private List _connections; + [fsSerializeAs("canvasGroups"), fsIgnoreInBuild] + private List _canvasGroups; + [fsSerializeAs("localBlackboard")] + private BlackboardSource _localBlackboard; + [fsSerializeAs("derivedData")] + private object _derivedData; + + ///---------------------------------------------------------------------------------------------- + + public float version { get { return _version; } set { _version = value; } } + public string category { get { return _category; } set { _category = value; } } + public string comments { get { return _comments; } set { _comments = value; } } + public Vector2 translation { get { return _translation; } set { _translation = value; } } + public float zoomFactor { get { return _zoomFactor; } set { _zoomFactor = value; } } + + public string type { get { return _type; } set { _type = value; } } + public List nodes { get { return _nodes; } set { _nodes = value; } } + public List connections { get { return _connections; } private set { _connections = value; } } + public List canvasGroups { get { return _canvasGroups; } set { _canvasGroups = value; } } + public BlackboardSource localBlackboard { get { return _localBlackboard; } set { _localBlackboard = value; } } + public object derivedData { get { return _derivedData; } set { _derivedData = value; } } + + ///---------------------------------------------------------------------------------------------- + + //... + public GraphSource() { + zoomFactor = 1f; + nodes = new List(); + canvasGroups = new List(); + localBlackboard = new BlackboardSource(); + } + + ///Must Pack *BEFORE* any serialization + public GraphSource Pack(Graph graph) { + + this.version = FRAMEWORK_VERSION; + this.type = graph.GetType().FullName; + + //connections are serialized seperately and not part of their parent node + var structConnections = new List(); + for ( var i = 0; i < nodes.Count; i++ ) { + for ( var j = 0; j < nodes[i].outConnections.Count; j++ ) { + structConnections.Add(nodes[i].outConnections[j]); + } + } + this.connections = structConnections; + + //serialize derived data + this.derivedData = graph.OnDerivedDataSerialization(); + return this; + } + + ///Must Unpack *AFTER* any deserialization + public GraphSource Unpack(Graph graph) { + + //check serialization versions here in the future if needed + + //set local bb context (not really important) + localBlackboard.unityContextObject = graph; + + //re-set the node's owner and ID + for ( var i = 0; i < this.nodes.Count; i++ ) { + nodes[i].outConnections.Clear(); + nodes[i].inConnections.Clear(); + nodes[i].graph = graph; + nodes[i].ID = i; + } + + //re-link connections for deserialization + for ( var i = 0; i < this.connections.Count; i++ ) { + connections[i].sourceNode.outConnections.Add(connections[i]); + connections[i].targetNode.inConnections.Add(connections[i]); + } + + //deserialize derived data + graph.OnDerivedDataDeserialization(derivedData); + return this; + } + + ///Sets only the meta-data from another GraphSource and returns itself + public GraphSource SetMetaData(GraphSource source) { + version = source.version; + category = source.category; + comments = source.comments; + translation = source.translation; + zoomFactor = source.zoomFactor; + return this; + } + + //... + public void PurgeRedundantReferences() { + connections.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs.meta new file mode 100644 index 0000000..c251035 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/GraphSource.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ac806f2e918a5a48a3dfaa3e985d787 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs new file mode 100644 index 0000000..ed8e36a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using ParadoxNotion; + +namespace NodeCanvas.Framework.Internal +{ + + ///Missing node types are deserialized into this on deserialization and can load back if type is found + [DoNotList] + [Description("Please resolve the MissingConnection issue by either replacing the connection, importing the missing connection type, or refactoring the type in GraphRefactor.")] + sealed public class MissingConnection : Connection, IMissingRecoverable + { + + [SerializeField] + private string _missingType; + [SerializeField] + private string _recoveryState; + + string IMissingRecoverable.missingType { + get { return _missingType; } + set { _missingType = value; } + } + + string IMissingRecoverable.recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override Color defaultColor => Color.red; + public override TipConnectionStyle tipConnectionStyle => TipConnectionStyle.None; + + protected override void OnConnectionInspectorGUI() { + GUILayout.Label(_missingType.FormatError()); + GUILayout.Label(_recoveryState); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs.meta new file mode 100644 index 0000000..0dd0e7b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingConnection.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa31d7e234114e3499f188adfd1e1f84 +timeCreated: 1461842498 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs new file mode 100644 index 0000000..ee599a5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs @@ -0,0 +1,68 @@ +using UnityEngine; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework.Internal +{ + + ///Missing node types are deserialized into this on deserialization and can load back if type is found + [DoNotList] + [Description("Please resolve the MissingNode issue by either replacing the node, importing the missing node type, or refactoring the type in GraphRefactor.")] + sealed public class MissingNode : Node, IMissingRecoverable + { + + [SerializeField] + private string _missingType; + [SerializeField] + private string _recoveryState; + + string IMissingRecoverable.missingType { + get { return _missingType; } + set { _missingType = value; } + } + + string IMissingRecoverable.recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + + public override string name { + get { return "Missing Node".FormatError(); } + } + + public override System.Type outConnectionType { get { return null; } } + public override int maxInConnections { get { return 0; } } + public override int maxOutConnections { get { return 0; } } + public override bool allowAsPrime { get { return false; } } + public override bool canSelfConnect { get { return false; } } + public override Alignment2x2 commentsAlignment { get { return Alignment2x2.Right; } } + public override Alignment2x2 iconAlignment { get { return Alignment2x2.Default; } } + + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void DrawNodeConnections(Rect drawCanvas, bool fullDrawPass, Vector2 canvasMousePos, float zoomFactor) { + foreach ( var c in outConnections ) { + UnityEditor.Handles.DrawBezier(c.sourceNode.rect.center, c.targetNode.rect.center, c.sourceNode.rect.center, c.targetNode.rect.center, Color.red, Editor.StyleSheet.bezierTexture, 3); + } + foreach ( var c in inConnections ) { + UnityEditor.Handles.DrawBezier(c.sourceNode.rect.center, c.targetNode.rect.center, c.sourceNode.rect.center, c.targetNode.rect.center, Color.red, Editor.StyleSheet.bezierTexture, 3); + } + } + + protected override void OnNodeGUI() { + GUILayout.Label(ReflectionTools.FriendlyTypeName(_missingType).FormatError()); + } + + protected override void OnNodeInspectorGUI() { + GUILayout.Label(_missingType.FormatError()); + GUILayout.Label(_recoveryState); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs.meta new file mode 100644 index 0000000..c2070bf --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Internal/MissingNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7035520631494254aa0d7379affe3106 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs new file mode 100644 index 0000000..33bc77f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs @@ -0,0 +1,535 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Framework.Internal; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using ParadoxNotion.Services; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Framework +{ + + ///The base class for all nodes that can live in a NodeCanvas Graph + +#if UNITY_EDITOR //handles missing Nodes + [fsObject(Processor = typeof(fsRecoveryProcessor))] +#endif + + [ParadoxNotion.Design.SpoofAOT] + [System.Serializable, fsSerializeAsReference, fsDeserializeOverwrite] + abstract public partial class Node : IGraphElement, ISerializationCollectable + { + + //---------------------------------------------------------------------------------------------- + ///Add on an IList (list/array) field to autosort it automatically when the children nodes are autosorted. Thus keeping the collection the same in respects to the children. Related only to tree graphs. + [System.AttributeUsage(System.AttributeTargets.Field)] + protected class AutoSortWithChildrenConnections : System.Attribute { } + ///---------------------------------------------------------------------------------------------- + + [SerializeField] private string _UID; + [SerializeField] private string _name; + [SerializeField] private string _tag; + [SerializeField, fsIgnoreInBuild] private Vector2 _position; + [SerializeField, fsIgnoreInBuild] private string _comment; + [SerializeField, fsIgnoreInBuild] private bool _isBreakpoint; + + //reconstructed OnDeserialization + private Graph _graph; + //reconstructed OnDeserialization + private int _ID; + //reconstructed OnDeserialization + private List _inConnections = new List(); + //reconstructed OnDeserialization + private List _outConnections = new List(); + + [System.NonSerialized] private Status _status = Status.Resting; + [System.NonSerialized] private string _nameCache; + [System.NonSerialized] private string _descriptionCache; + [System.NonSerialized] private int _priorityCache = int.MinValue; + // + + ///The graph this node belongs to. + public Graph graph { + get { return _graph; } + internal set { _graph = value; } + } + + ///The node's int index ID in the graph. This is not persistant in any way. Use UID for that. + public int ID { + get { return _ID; } + internal set { _ID = value; } + } + + ///The Unique ID of the node. One is created only if requested. + public string UID => string.IsNullOrEmpty(_UID) ? _UID = System.Guid.NewGuid().ToString() : _UID; + + ///All incomming connections to this node. + public List inConnections { + get { return _inConnections; } + protected set { _inConnections = value; } + } + + ///All outgoing connections from this node. + public List outConnections { + get { return _outConnections; } + protected set { _outConnections = value; } + } + + ///The position of the node in the graph. + public Vector2 position { + get { return _position; } + set { _position = value; } + } + + ///The custom title name of the node if any. + private string customName { + get { return _name; } + set { _name = value; } + } + + ///The node tag. Useful for finding nodes through code. + public string tag { + get { return _tag; } + set { _tag = value; } + } + + ///The comments of the node if any. + public string comments { + get { return _comment; } + set { _comment = value; } + } + + ///Is the node set as a breakpoint? + public bool isBreakpoint { + get { return _isBreakpoint; } + set { _isBreakpoint = value; } + } + + ///The title name of the node. This is virtual so title name may change instance wise + virtual public string name { + get + { + if ( !string.IsNullOrEmpty(customName) ) { + return customName; + } + + if ( string.IsNullOrEmpty(_nameCache) ) { + var nameAtt = this.GetType().RTGetAttribute(true); + _nameCache = ( nameAtt != null ? nameAtt.name : GetType().FriendlyName().SplitCamelCase() ); + } + return _nameCache; + } + set { customName = value; } + } + + ///The description info of the node + virtual public string description { + get + { + if ( string.IsNullOrEmpty(_descriptionCache) ) { + var descAtt = this.GetType().RTGetAttribute(true); + _descriptionCache = descAtt != null ? descAtt.description : "No Description"; + } + return _descriptionCache; + } + } + + ///The execution priority order of the node when it matters to the graph system + virtual public int priority { + get + { + if ( _priorityCache == int.MinValue ) { + var prioAtt = this.GetType().RTGetAttribute(true); + _priorityCache = prioAtt != null ? prioAtt.priority : 0; + } + return _priorityCache; + } + } + + ///The numer of possible inputs. -1 for infinite. + abstract public int maxInConnections { get; } + ///The numer of possible outputs. -1 for infinite. + abstract public int maxOutConnections { get; } + ///The output connection Type this node has. + abstract public System.Type outConnectionType { get; } + ///Can this node be set as prime (Start)? + abstract public bool allowAsPrime { get; } + ///Can this node connect to itself? + abstract public bool canSelfConnect { get; } + ///Alignment of the comments when shown (editor). + abstract public Alignment2x2 commentsAlignment { get; } + ///Alignment of the icons (editor). + abstract public Alignment2x2 iconAlignment { get; } + + ///The current status of the node + public Status status { + get { return _status; } + protected set + { + if ( _status == Status.Resting && value == Status.Running ) { + timeStarted = graph.elapsedTime; + } + _status = value; + } + } + + ///The current agent. + public Component graphAgent => ( graph != null ? graph.agent : null ); + + ///The current blackboard. + public IBlackboard graphBlackboard => ( graph != null ? graph.blackboard : null ); + + ///The time in seconds the node has been Status.Running after a reset (Status.Resting) + public float elapsedTime => ( status == Status.Running ? graph.elapsedTime - timeStarted : 0 ); + + //Mark when status running change + private float timeStarted { get; set; } + //Used to check recursion + private bool isChecked { get; set; } + //Used to flag breakpoint reached + private bool breakPointReached { get; set; } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------------------------------------------------------------- + + //required + public Node() { /*_UID = System.Guid.NewGuid().ToString();*/ } + + ///Create a new Node of type and assigned to the provided graph. Use this for constructor + public static Node Create(Graph targetGraph, System.Type nodeType, Vector2 pos) { + + if ( targetGraph == null ) { + Logger.LogError("Can't Create a Node without providing a Target Graph", LogTag.GRAPH); + return null; + } + + if ( nodeType.IsGenericTypeDefinition ) { + nodeType = nodeType.RTMakeGenericType(nodeType.GetFirstGenericParameterConstraintType()); + } + + var newNode = (Node)System.Activator.CreateInstance(nodeType); + + UndoUtility.RecordObject(targetGraph, "Create Node"); + + newNode.graph = targetGraph; + newNode.position = pos; + BBParameter.SetBBFields(newNode, targetGraph.blackboard); + newNode.Validate(targetGraph); + newNode.OnCreate(targetGraph); + UndoUtility.SetDirty(targetGraph); + return newNode; + } + + ///Duplicate node alone assigned to the provided graph + public Node Duplicate(Graph targetGraph) { + + if ( targetGraph == null ) { + Logger.LogError("Can't duplicate a Node without providing a Target Graph", LogTag.GRAPH); + return null; + } + + //deep clone + var newNode = JSONSerializer.Clone(this); + + UndoUtility.RecordObject(targetGraph, "Duplicate Node"); + + targetGraph.allNodes.Add(newNode); + newNode.inConnections.Clear(); + newNode.outConnections.Clear(); + + if ( targetGraph == this.graph ) { + newNode.position += new Vector2(50, 50); + } + + newNode._UID = null; + newNode.graph = targetGraph; + BBParameter.SetBBFields(newNode, targetGraph.blackboard); + + foreach ( var task in Graph.GetTasksInElement(newNode) ) { + task.Validate(targetGraph); + } + //-- + + newNode.Validate(targetGraph); + UndoUtility.SetDirty(targetGraph); + return newNode; + } + + ///Validate the node in it's graph + public void Validate(Graph assignedGraph) { + OnValidate(assignedGraph); + var hardError = GetHardError(); + if ( hardError != null ) { Logger.LogError(hardError, LogTag.VALIDATION, this); } + if ( this is IGraphAssignable ) { ( this as IGraphAssignable ).ValidateSubGraphAndParameters(); } + } + + ///---------------------------------------------------------------------------------------------- + + ///The main execution function of the node. Execute the node for the agent and blackboard provided. + public Status Execute(Component agent, IBlackboard blackboard) { + + if ( !graph.isRunning ) { return status; } + +#if UNITY_EDITOR + if ( isBreakpoint ) { + if ( status == Status.Resting ) { + var breakEditor = NodeCanvas.Editor.Prefs.breakpointPauseEditor; + var owner = agent as GraphOwner; + var contextName = owner != null ? owner.gameObject.name : graph.name; + Logger.LogWarning(string.Format("Node: '{0}' | ID: '{1}' | Graph Type: '{2}' | Context Object: '{3}'", name, ID, graph.GetType().Name, contextName), "Breakpoint", this); + if ( owner != null ) { owner.PauseBehaviour(); } + if ( breakEditor ) { StartCoroutine(YieldBreak(() => { if ( owner != null ) { owner.StartBehaviour(); } })); } + breakPointReached = true; + return status = Status.Running; + } + if ( breakPointReached ) { + breakPointReached = false; + status = Status.Resting; + } + } +#endif + + return status = OnExecute(agent, blackboard); + } + + ///Recursively reset the node and child nodes if it's not Resting already + public void Reset(bool recursively = true) { + + if ( status == Status.Resting || isChecked ) { + return; + } + + OnReset(); + status = Status.Resting; + + isChecked = true; + for ( var i = 0; i < outConnections.Count; i++ ) { + outConnections[i].Reset(recursively); + } + isChecked = false; + } + + ///---------------------------------------------------------------------------------------------- + + ///Helper for breakpoints + IEnumerator YieldBreak(System.Action resume) { + Debug.Break(); + yield return null; + resume(); + } + + ///Helper for easier logging + public Status Error(object msg) { + if ( msg is System.Exception ) { + Logger.LogException((System.Exception)msg, LogTag.EXECUTION, this); + } else { + Logger.LogError(msg, LogTag.EXECUTION, this); + } + status = Status.Error; + return Status.Error; + } + + ///Helper for easier logging + public Status Fail(string msg) { + Logger.LogError(msg, LogTag.EXECUTION, this); + status = Status.Failure; + return Status.Failure; + } + + ///Helper for easier logging + public void Warn(string msg) { + Logger.LogWarning(msg, LogTag.EXECUTION, this); + } + + ///Set the Status of the node directly. Not recomended if you don't know why! + public void SetStatus(Status status) { + this.status = status; + } + + ///---------------------------------------------------------------------------------------------- + + ///Sends an event to the graph (same as calling graph.SendEvent) + protected void SendEvent(string eventName) { + graph.SendEvent(eventName, null, this); + } + + ///Sends an event to the graph (same as calling graph.SendEvent) + protected void SendEvent(string eventName, T value) { + graph.SendEvent(eventName, value, this); + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns whether source and target nodes can generaly be connected together. This only validates max in/out connections that source and target nodes has, along with other validations. Providing an existing refConnection, will bypass source/target validation respectively if that connection is already connected to that source/target node. + public static bool IsNewConnectionAllowed(Node sourceNode, Node targetNode, Connection refConnection = null) { + + if ( sourceNode == null || targetNode == null ) { + Logger.LogWarning("A Node Provided is null.", LogTag.EDITOR, targetNode); + return false; + } + + if ( sourceNode == targetNode && !sourceNode.canSelfConnect ) { + Logger.LogWarning("Node can't connect to itself.", LogTag.EDITOR, targetNode); + return false; + } + + if ( refConnection == null || refConnection.sourceNode != sourceNode ) { + if ( sourceNode.outConnections.Count >= sourceNode.maxOutConnections && sourceNode.maxOutConnections != -1 ) { + Logger.LogWarning("Source node can have no more out connections.", LogTag.EDITOR, sourceNode); + return false; + } + } + + if ( refConnection == null || refConnection.targetNode != targetNode ) { + if ( targetNode.maxInConnections <= targetNode.inConnections.Count && targetNode.maxInConnections != -1 ) { + Logger.LogWarning("Target node can have no more in connections.", LogTag.EDITOR, targetNode); + return false; + } + } + + var final = true; + final &= sourceNode.CanConnectToTarget(targetNode); + final &= targetNode.CanConnectFromSource(sourceNode); + return final; + } + + ///Override for explicit handling + virtual protected bool CanConnectToTarget(Node targetNode) { return true; } + ///Override for explicit handling + virtual protected bool CanConnectFromSource(Node sourceNode) { return true; } + + ///Are provided nodes connected at all regardless of parent/child relation? + public static bool AreNodesConnected(Node a, Node b) { + Debug.Assert(a != null && b != null, "Null nodes"); + var conditionA = a.outConnections.FirstOrDefault(c => c.targetNode == b) != null; + var conditionB = b.outConnections.FirstOrDefault(c => c.targetNode == a) != null; + return conditionA || conditionB; + } + + ///---------------------------------------------------------------------------------------------- + + ///Nodes can use coroutine as normal through MonoManager. + public Coroutine StartCoroutine(IEnumerator routine) { + return MonoManager.current != null ? MonoManager.current.StartCoroutine(routine) : null; + } + + ///Nodes can use coroutine as normal through MonoManager. + public void StopCoroutine(Coroutine routine) { + if ( MonoManager.current != null ) { MonoManager.current.StopCoroutine(routine); } + } + + ///Returns all *direct* parent nodes (first depth level) + public IEnumerable GetParentNodes() { + if ( inConnections.Count != 0 ) { + return inConnections.Select(c => c.sourceNode); + } + return new Node[0]; + } + + ///Returns all *direct* children nodes (first depth level) + public IEnumerable GetChildNodes() { + if ( outConnections.Count != 0 ) { + return outConnections.Select(c => c.targetNode); + } + return new Node[0]; + } + + ///Is node child of parent node? + public bool IsChildOf(Node parentNode) { + return inConnections.Any(c => c.sourceNode == parentNode); + } + + ///Is node parent of child node? + public bool IsParentOf(Node childNode) { + return outConnections.Any(c => c.targetNode == childNode); + } + + ///---------------------------------------------------------------------------------------------- + + ///Returns a warning string or null if none + virtual protected string GetWarningOrError() { + var hardError = GetHardError(); + if ( hardError != null ) { return "* " + hardError; } + + string result = null; + var assignable = this as ITaskAssignable; + if ( assignable != null && assignable.task != null ) { + result = assignable.task.GetWarningOrError(); + } + + return result; + } + + ///A hard error, missing things + string GetHardError() { + if ( this is IMissingRecoverable ) { + return string.Format("Missing Node '{0}'", ( this as IMissingRecoverable ).missingType); + } + + if ( this is IReflectedWrapper ) { + var info = ( this as IReflectedWrapper ).GetSerializedInfo(); + if ( info != null && info.AsMemberInfo() == null ) { return string.Format("Missing Reflected Info '{0}'", info.AsString()); } + } + return null; + } + + ///---------------------------------------------------------------------------------------------- + + ///Override to define node functionality. The Agent and Blackboard used to start the Graph are propagated + virtual protected Status OnExecute(Component agent, IBlackboard blackboard) { return status; } + ///Called when the node gets reseted. e.g. OnGraphStart, after a tree traversal, when interrupted, OnGraphEnd etc... + virtual protected void OnReset() { } + + ///Called once the first time node is created. + virtual public void OnCreate(Graph assignedGraph) { } + ///Called when the Node is created, duplicated or otherwise needs validation. + virtual public void OnValidate(Graph assignedGraph) { } + ///Called when the Node is removed from the graph (always through graph.RemoveNode) + virtual public void OnDestroy() { } + + ///Called when an input connection is connected + virtual public void OnParentConnected(int connectionIndex) { } + ///Called when an input connection is disconnected but before it actually does + virtual public void OnParentDisconnected(int connectionIndex) { } + ///Called when an output connection is connected + virtual public void OnChildConnected(int connectionIndex) { } + ///Called when an output connection is disconnected but before it actually does + virtual public void OnChildDisconnected(int connectionIndex) { } + ///Called when child connection are sorted + virtual public void OnChildrenConnectionsSorted(int[] oldIndeces) { } + ///Called when the parent graph is started. Use to init values or otherwise. + virtual public void OnGraphStarted() { } + ///Called when the parent graph is started, but after all OnGraphStarted calls on all nodes. + virtual public void OnPostGraphStarted() { } + ///Called when the parent graph is stopped. + virtual public void OnGraphStoped() { } + ///Called when the parent graph is stopped, but after all OnGraphStoped calls on all nodes. + virtual public void OnPostGraphStoped() { } + ///Called when the parent graph is paused. + virtual public void OnGraphPaused() { } + ///Called when the parent graph is unpaused. + virtual public void OnGraphUnpaused() { } + + ///---------------------------------------------------------------------------------------------- + + //... + public override string ToString() { + var result = name; + if ( this is IReflectedWrapper ) { + var info = ( this as IReflectedWrapper ).GetSerializedInfo()?.AsMemberInfo(); + if ( info != null ) { result = info.FriendlyName(); } + } + if ( this is IGraphAssignable ) { + var subGraph = ( this as IGraphAssignable ).subGraph; + if ( subGraph != null ) { result = subGraph.name; } + } + return string.Format("{0}{1}", result, ( !string.IsNullOrEmpty(tag) ? " (" + tag + ")" : "" )); + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs.meta new file mode 100644 index 0000000..5014155 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/Node.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 47b76e2d955bd434fb6c876ce91fef81 +labels: +- Graph +- Node +- AI +- visualscripting +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs new file mode 100644 index 0000000..2a903fd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs @@ -0,0 +1,50 @@ +using System; +using System.Linq; +using UnityEngine; + +namespace NodeCanvas.Framework +{ + ///Interface for NodeReference + public interface INodeReference + { + System.Type type { get; } + Node Get(Graph graph); + void Set(Node target); + } + + ///A utility to have nodes weak reference other nodes + [System.Serializable, ParadoxNotion.Serialization.FullSerializer.fsForward(nameof(_targetNodeUID))] + [ParadoxNotion.Serialization.FullSerializer.fsAutoInstance] + public class NodeReference : INodeReference where T : Node + { + [SerializeField] private string _targetNodeUID; + + [NonSerialized] private WeakReference _targetNodeRef; + + System.Type INodeReference.type => typeof(T); + Node INodeReference.Get(Graph graph) { return Get(graph); } + void INodeReference.Set(Node target) { Set(target as T); } + + public NodeReference() { } + public NodeReference(T target) { Set(target); } + + ///Get referenced node given the graph it lives within + public T Get(Graph graph) { + T reference; + if ( _targetNodeRef == null ) { + var _this = this; + reference = graph.GetAllNodesOfType().FirstOrDefault(x => x.UID == _this._targetNodeUID); + _targetNodeRef = new WeakReference(reference); + } + _targetNodeRef.TryGetTarget(out reference); + return reference; + } + + ///Set referenced node + public void Set(T target) { + if ( _targetNodeRef == null ) { _targetNodeRef = new WeakReference(target); } + _targetNodeRef.SetTarget(target); + _targetNodeUID = target != null ? target.UID : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs.meta new file mode 100644 index 0000000..42c5aec --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Graphs/NodeReference.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f2b1c0ee91fc4a444bd26d40c970d60e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers.meta new file mode 100644 index 0000000..3a0f24f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: eac692687d028874c9d5cacb45790224 +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs new file mode 100644 index 0000000..116d6da --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs @@ -0,0 +1,120 @@ +using System; +using ParadoxNotion; + + +namespace NodeCanvas.Framework.Internal +{ + + /// Wraps a reflected method call of return type void + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public override BBParameter[] GetVariables() { return new BBParameter[0]; } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate(instance); + } + public override void Call() { call(); } + } + + [Serializable] + [ParadoxNotion.Design.SpoofAOT] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value); } + } + + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1, p2 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value, p2.value); } + } + + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1, p2, p3 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value, p2.value, p3.value); } + } + + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1, p2, p3, p4 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value, p2.value, p3.value, p4.value); } + } + + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + public BBParameter p5 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1, p2, p3, p4, p5 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value, p2.value, p3.value, p4.value, p5.value); } + } + + [Serializable] + public class ReflectedAction : ReflectedActionWrapper + { + private ActionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + public BBParameter p5 = new BBParameter(); + public BBParameter p6 = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { p1, p2, p3, p4, p5, p6 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override void Call() { call(p1.value, p2.value, p3.value, p4.value, p5.value, p6.value); } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs.meta new file mode 100644 index 0000000..a3a6f6d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a147fdacb6351d44f82fa2590c99cb81 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs new file mode 100644 index 0000000..9bc0115 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs @@ -0,0 +1,132 @@ +using System; +using ParadoxNotion; + +namespace NodeCanvas.Framework.Internal +{ + + /// A Wrapped reflected method call of return type TResult + [Serializable] + [ParadoxNotion.Design.SpoofAOT] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { return new BBParameter[] { result }; } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1, p2 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value, p2.value); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1, p2, p3 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value, p2.value, p3.value); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1, p2, p3, p4 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value, p2.value, p3.value, p4.value); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + public BBParameter p5 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1, p2, p3, p4, p5 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value, p2.value, p3.value, p4.value, p5.value); } + } + + [Serializable] + public class ReflectedFunction : ReflectedFunctionWrapper + { + private FunctionCall call; + public BBParameter p1 = new BBParameter(); + public BBParameter p2 = new BBParameter(); + public BBParameter p3 = new BBParameter(); + public BBParameter p4 = new BBParameter(); + public BBParameter p5 = new BBParameter(); + public BBParameter p6 = new BBParameter(); + [BlackboardOnly] + public BBParameter result = new BBParameter(); + public override BBParameter[] GetVariables() { + return new BBParameter[] { result, p1, p2, p3, p4, p5, p6 }; + } + public override void Init(object instance) { + call = GetMethod().RTCreateDelegate>(instance); + } + public override object Call() { return result.value = call(p1.value, p2.value, p3.value, p4.value, p5.value, p6.value); } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs.meta new file mode 100644 index 0000000..3f67581 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedFunction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc5975ff21fbf624eae37680bcb13f3a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs new file mode 100644 index 0000000..81088c7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs @@ -0,0 +1,129 @@ +using System; +using System.Linq; +using System.Reflection; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using UnityEngine; + + +namespace NodeCanvas.Framework.Internal +{ + + ///Wraps a MethodInfo with the relevant BBParameters to be called within a Reflection based Task + abstract public class ReflectedWrapper : IReflectedWrapper + { + + //required + public ReflectedWrapper() { } + + [SerializeField] + protected SerializedMethodInfo _targetMethod; + + public static ReflectedWrapper Create(MethodInfo method, IBlackboard bb) { + if ( method == null ) return null; + if ( method.ReturnType == typeof(void) ) { + return ReflectedActionWrapper.Create(method, bb); + } + return ReflectedFunctionWrapper.Create(method, bb); + } + + ISerializedReflectedInfo IReflectedWrapper.GetSerializedInfo() { return _targetMethod; } + + public void SetVariablesBB(IBlackboard bb) { foreach ( var bbVar in GetVariables() ) bbVar.bb = bb; } + public SerializedMethodInfo GetSerializedMethod() { return _targetMethod; } + public MethodInfo GetMethod() { return _targetMethod; } + public bool HasChanged() { return _targetMethod != null ? _targetMethod.HasChanged() : false; } + public string AsString() { return _targetMethod != null ? _targetMethod.AsString() : null; } + public override string ToString() { return AsString(); } + + abstract public BBParameter[] GetVariables(); + abstract public void Init(object instance); + } + + + + ///Wraps a MethodInfo Action with the relevant BBVariables to be commonly called within a Reflection based Task + abstract public class ReflectedActionWrapper : ReflectedWrapper + { + + new public static ReflectedActionWrapper Create(MethodInfo method, IBlackboard bb) { + if ( method == null ) return null; + Type type = null; + var parameters = method.GetParameters(); + if ( parameters.Length == 0 ) type = typeof(ReflectedAction); + if ( parameters.Length == 1 ) type = typeof(ReflectedAction<>); + if ( parameters.Length == 2 ) type = typeof(ReflectedAction<,>); + if ( parameters.Length == 3 ) type = typeof(ReflectedAction<,,>); + if ( parameters.Length == 4 ) type = typeof(ReflectedAction<,,,>); + if ( parameters.Length == 5 ) type = typeof(ReflectedAction<,,,,>); + if ( parameters.Length == 6 ) type = typeof(ReflectedAction<,,,,,>); + + var argTypes = new Type[parameters.Length]; + for ( var i = 0; i < parameters.Length; i++ ) { + var parameter = parameters[i]; + var pType = parameter.ParameterType.IsByRef ? parameter.ParameterType.GetElementType() : parameter.ParameterType; + argTypes[i] = pType; + } + + var o = (ReflectedActionWrapper)Activator.CreateInstance(argTypes.Length > 0 ? type.RTMakeGenericType(argTypes) : type); + o._targetMethod = new SerializedMethodInfo(method); + + BBParameter.SetBBFields(o, bb); + + var bbParams = o.GetVariables(); + for ( int i = 0; i < parameters.Length; i++ ) { + var p = parameters[i]; + if ( p.IsOptional ) { + bbParams[i].value = p.DefaultValue; + } + } + + return o; + } + + abstract public void Call(); + } + + ///Wraps a MethodInfo Function with the relevant BBVariables to be commonly called within a Reflection based Task + abstract public class ReflectedFunctionWrapper : ReflectedWrapper + { + + new public static ReflectedFunctionWrapper Create(MethodInfo method, IBlackboard bb) { + if ( method == null ) return null; + Type type = null; + var parameters = method.GetParameters(); + if ( parameters.Length == 0 ) type = typeof(ReflectedFunction<>); + if ( parameters.Length == 1 ) type = typeof(ReflectedFunction<,>); + if ( parameters.Length == 2 ) type = typeof(ReflectedFunction<,,>); + if ( parameters.Length == 3 ) type = typeof(ReflectedFunction<,,,>); + if ( parameters.Length == 4 ) type = typeof(ReflectedFunction<,,,,>); + if ( parameters.Length == 5 ) type = typeof(ReflectedFunction<,,,,,>); + if ( parameters.Length == 6 ) type = typeof(ReflectedFunction<,,,,,,>); + + var argTypes = new Type[parameters.Length + 1]; + argTypes[0] = method.ReturnType; + for ( var i = 0; i < parameters.Length; i++ ) { + var parameter = parameters[i]; + var pType = parameter.ParameterType.IsByRef ? parameter.ParameterType.GetElementType() : parameter.ParameterType; + argTypes[i + 1] = pType; + } + + var o = (ReflectedFunctionWrapper)Activator.CreateInstance(type.RTMakeGenericType(argTypes.ToArray())); + o._targetMethod = new SerializedMethodInfo(method); + + BBParameter.SetBBFields(o, bb); + + var bbParams = o.GetVariables(); + for ( int i = 0; i < parameters.Length; i++ ) { + var p = parameters[i]; + if ( p.IsOptional ) { + bbParams[i + 1].value = p.DefaultValue; //index 0 is return value + } + } + + return o; + } + + abstract public object Call(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs.meta new file mode 100644 index 0000000..b523513 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/ReflectionWrappers/ReflectedWrapper.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72a7cee9b8d336b4a8a2facfb90c7c55 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs new file mode 100644 index 0000000..20c6a8b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs @@ -0,0 +1,43 @@ +namespace NodeCanvas.Framework +{ + + /// Core Execution Status enumeration + public enum Status + { + ///The operation has failed. + Failure = 0, + ///The operation has succeeded. + Success = 1, + ///The operation is still running. + Running = 2, + ///Indicates a "ready" state. No operation is performed yet. + Resting = 3, + ///The operation encountered an error. Usually execution error. This status is unhandled and is neither considered Success nor Failure. + Error = 4, + ///The operation is considered optional and is neither Success nor Failure. + Optional = 5, + } + + /// Enumeration for boolean status result + public enum BooleanStatus + { + Failure = 0, + Success = 1 + } + + ///Usual final Statuses. Castable to Status + public enum FinalStatus + { + Failure = 0, + Success = 1, + Optional = 5, + } + + ///Used for policies + public enum BehaviourPolicy + { + OnFailure = 0, + OnSuccess = 1, + OnSuccessOrFailure = 2, + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs.meta new file mode 100644 index 0000000..311c3f6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Status.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dca04b6f4f9bd114793bf13b5477c6ee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks.meta new file mode 100644 index 0000000..5f1a98e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dd6e114833bd43641b82d5350e51ca6e +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs new file mode 100644 index 0000000..5b576e1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs @@ -0,0 +1,322 @@ +#if UNITY_EDITOR +using UnityEditor; +using NodeCanvas.Editor; +#endif + +using System.Collections.Generic; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework +{ + + ///ActionList is an ActionTask itself that holds multiple ActionTasks which can be executed either in parallel or in sequence. + [DoNotList] + public class ActionList : ActionTask + { + + public enum ActionsExecutionMode + { + ActionsRunInSequence, + ActionsRunInParallel + } + + public ActionsExecutionMode executionMode; + public List actions = new List(); + + private int currentActionIndex; + private bool[] finishedIndeces; + + protected override string info { + get + { + if ( actions.Count == 0 ) { + return "No Actions"; + } + + var finalText = actions.Count > 1 ? ( string.Format("({0})\n", executionMode == ActionsExecutionMode.ActionsRunInSequence ? "In Sequence" : "In Parallel") ) : string.Empty; + for ( var i = 0; i < actions.Count; i++ ) { + + var action = actions[i]; + if ( action == null ) { + continue; + } + + if ( action.isUserEnabled ) { + var prefix = action.isPaused ? "|| " : action.isRunning ? "► " : "▪"; + finalText += prefix + action.summaryInfo + ( i == actions.Count - 1 ? "" : "\n" ); + } + } + + return finalText; + } + } + + ///ActionList overrides to duplicate listed actions correctly + public override Task Duplicate(ITaskSystem newOwnerSystem) { + var newList = (ActionList)base.Duplicate(newOwnerSystem); + newList.actions.Clear(); + foreach ( var action in actions ) { + newList.AddAction((ActionTask)action.Duplicate(newOwnerSystem)); + } + return newList; + } + + protected override string OnInit() { + finishedIndeces = new bool[actions.Count]; + return null; + } + + protected override void OnExecute() { + currentActionIndex = 0; + for ( var i = 0; i < actions.Count; i++ ) { + finishedIndeces[i] = false; + } + } + + protected override void OnUpdate() { + + if ( actions.Count == 0 ) { + EndAction(); + return; + } + + switch ( executionMode ) { + + //parallel + case ( ActionsExecutionMode.ActionsRunInParallel ): { + for ( var i = 0; i < actions.Count; i++ ) { + + if ( finishedIndeces[i] ) { + continue; + } + + if ( !actions[i].isUserEnabled ) { + finishedIndeces[i] = true; + continue; + } + + var status = actions[i].Execute(agent, blackboard); + if ( status == Status.Failure ) { + EndAction(false); + return; + } + + if ( status == Status.Success ) { + finishedIndeces[i] = true; + } + } + + var finished = true; + for ( var i = 0; i < actions.Count; i++ ) { + finished &= finishedIndeces[i]; + } + + if ( finished ) { + EndAction(true); + } + } + break; + + //sequence + case ( ActionsExecutionMode.ActionsRunInSequence ): { + for ( var i = currentActionIndex; i < actions.Count; i++ ) { + + if ( !actions[i].isUserEnabled ) { + continue; + } + + var status = actions[i].Execute(agent, blackboard); + if ( status == Status.Failure ) { + EndAction(false); + return; + } + + if ( status == Status.Running ) { + currentActionIndex = i; + return; + } + } + + EndAction(true); + } + break; + } + } + + protected override void OnStop() { + for ( var i = 0; i < actions.Count; i++ ) { + if ( actions[i].isUserEnabled ) { + actions[i].EndAction(null); + } + } + } + + protected override void OnPause() { + for ( var i = 0; i < actions.Count; i++ ) { + if ( actions[i].isUserEnabled ) { + actions[i].Pause(); + } + } + } + + public override void OnDrawGizmosSelected() { + for ( var i = 0; i < actions.Count; i++ ) { + if ( actions[i].isUserEnabled ) { + actions[i].OnDrawGizmosSelected(); + } + } + } + + public void AddAction(ActionTask action) { + + if ( action is ActionList ) { + foreach ( var subAction in ( action as ActionList ).actions ) { + AddAction(subAction); + } + return; + } + +#if UNITY_EDITOR + UndoUtility.RecordObject(ownerSystem.contextObject, "List Add Task"); + currentViewAction = action; +#endif + + actions.Add(action); + action.SetOwnerSystem(this.ownerSystem); + } + + internal override string GetWarningOrError() { + for ( var i = 0; i < actions.Count; i++ ) { + var result = actions[i].GetWarningOrError(); + if ( result != null ) { return result; } + } + return null; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + private ActionTask currentViewAction; + + //... + protected override void OnTaskInspectorGUI() { + ShowListGUI(); + ShowNestedActionsGUI(); + } + + ///Show the sub-tasks list + public void ShowListGUI() { + + if ( ownerSystem == null ) { + GUILayout.Label("Owner System is null!"); + return; + } + + TaskEditor.ShowCreateTaskSelectionButton(ownerSystem, AddAction); + + ValidateList(); + + if ( actions.Count == 0 ) { + EditorGUILayout.HelpBox("No Actions", MessageType.None); + return; + } + + if ( actions.Count == 1 ) { return; } + + //show the actions + EditorUtils.ReorderableList(actions, (i, picked) => + { + var action = actions[i]; + GUI.color = Color.white.WithAlpha(action == currentViewAction ? 0.75f : 0.25f); + EditorGUILayout.BeginHorizontal("box"); + + GUI.color = Color.white.WithAlpha(action.isUserEnabled ? 0.8f : 0.25f); + GUI.enabled = !Application.isPlaying; + action.isUserEnabled = EditorGUILayout.Toggle(action.isUserEnabled, GUILayout.Width(18)); + GUI.enabled = true; + + GUILayout.Label(( action.isPaused ? "|| " : action.isRunning ? "► " : "" ) + action.summaryInfo, GUILayout.MinWidth(0), GUILayout.ExpandWidth(true)); + + if ( !Application.isPlaying && GUILayout.Button("X", GUILayout.Width(20)) ) { + UndoUtility.RecordObject(ownerSystem.contextObject, "List Remove Task"); + actions.RemoveAt(i); + if ( actions.Count == 1 ) { actions[0].isUserEnabled = true; } + } + + EditorGUILayout.EndHorizontal(); + + var lastRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(lastRect, MouseCursor.Link); + if ( Event.current.type == EventType.MouseDown && lastRect.Contains(Event.current.mousePosition) ) { + currentViewAction = action == currentViewAction ? null : action; + Event.current.Use(); + } + + GUI.color = Color.white; + }); + + executionMode = (ActionsExecutionMode)EditorGUILayout.EnumPopup(executionMode); + } + + ///Show currently selected task inspector + public void ShowNestedActionsGUI() { + + if ( actions.Count == 1 ) { + currentViewAction = actions[0]; + } + + if ( currentViewAction != null ) { + EditorUtils.Separator(); + TaskEditor.TaskFieldSingle(currentViewAction, (a) => + { + var i = actions.IndexOf(currentViewAction); + if ( a == null ) { + actions.RemoveAt(i); + } else { + actions[i] = (ActionTask)a; + } + currentViewAction = a as ActionTask; + }); + } + } + + //Validate possible null tasks + void ValidateList() { + for ( var i = actions.Count; i-- > 0; ) { + if ( actions[i] == null ) { + actions.RemoveAt(i); + } + } + } + + [ContextMenu("Save List Preset")] + void DoSavePreset() { + var path = EditorUtility.SaveFilePanelInProject("Save Preset", "", "actionList", ""); + if ( !string.IsNullOrEmpty(path) ) { + System.IO.File.WriteAllText(path, JSONSerializer.Serialize(typeof(ActionList), this, null, true)); //true for pretyJson + AssetDatabase.Refresh(); + } + } + + [ContextMenu("Load List Preset")] + void DoLoadPreset() { + var path = EditorUtility.OpenFilePanel("Load Preset", "Assets", "actionList"); + if ( !string.IsNullOrEmpty(path) ) { + var json = System.IO.File.ReadAllText(path); + var list = JSONSerializer.TryDeserializeOverwrite(this, json); + this.actions = list.actions; + this.executionMode = list.executionMode; + this.currentViewAction = null; + foreach ( var a in actions ) { + a.SetOwnerSystem(this.ownerSystem); + } + } + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs.meta new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionList.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 832e48885093140459c6a831c07ebe37 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs new file mode 100644 index 0000000..44cab03 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections; +using ParadoxNotion.Services; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using NodeCanvas.Framework.Internal; +using UnityEngine; + + +namespace NodeCanvas.Framework +{ + + ///Base class for actions. Extend this to create your own. T is the agentType required by the action. Generic version where T is the AgentType (Component or Interface) required by the Action. For GameObject, use 'Transform' + abstract public class ActionTask : ActionTask where T : class + { + sealed public override Type agentType => typeof(T); + new public T agent => base.agent as T; + } + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR //handles missing types + [fsObject(Processor = typeof(fsRecoveryProcessor))] +#endif + + ///Base class for all actions. Extend this to create your own. + abstract public class ActionTask : Task + { + private Status status = Status.Resting; + private float timeStarted; + private bool latch; + + ///The time in seconds this action is running if at all + public float elapsedTime => ( isRunning ? ownerSystem.elapsedTime - timeStarted : 0 ); + + ///Is the action currently running? + public bool isRunning => status == Status.Running; + + ///Is the action currently paused? + public bool isPaused { get; private set; } + + ///---------------------------------------------------------------------------------------------- + + ///Used to call an action for standalone execution providing a callback. Be careful! *This will make the action execute as a coroutine* + public void ExecuteIndependent(Component agent, IBlackboard blackboard, Action callback) { + if ( !isRunning ) { MonoManager.current.StartCoroutine(IndependentActionUpdater(agent, blackboard, callback)); } + } + + //The internal updater for when an action has been called with a callback parameter and only then. + //This is only used and usefull if user needs to execute an action task completely as standalone. + IEnumerator IndependentActionUpdater(Component agent, IBlackboard blackboard, Action callback) { + while ( Execute(agent, blackboard) == Status.Running ) { yield return null; } + if ( callback != null ) { callback(status); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Ticks the action for the provided agent and blackboard + public Status Execute(Component agent, IBlackboard blackboard) { + + if ( !isUserEnabled ) { + return Status.Optional; + } + + if ( isPaused ) { + OnResume(); + } + + isPaused = false; + if ( status == Status.Running ) { + OnUpdate(); + latch = false; + return status; + } + + //latch is used to be able to call EndAction anywhere + if ( latch ) { + latch = false; + return status; + } + + if ( !Set(agent, blackboard) ) { + latch = false; + return Status.Failure; + } + + timeStarted = ownerSystem.elapsedTime; + status = Status.Running; + OnExecute(); + if ( status == Status.Running ) { + OnUpdate(); + } + latch = false; + return status; + } + + ///Ends the action either in success or failure. Ending with null means that it's a cancel/interrupt. Null is used by the external system. You should use true or false when calling EndAction within it. + public void EndAction() { EndAction(true); } + public void EndAction(bool success) { EndAction((bool?)success); } + public void EndAction(bool? success) { + + if ( status != Status.Running ) { + if ( success == null ) { latch = false; } + return; + } + + latch = success != null ? true : false; + + isPaused = false; + status = success == null ? Status.Resting : ( success == true ? Status.Success : Status.Failure ); + OnStop(success == null); + } + + ///Pause the action from updating and calls OnPause + public void Pause() { + + if ( status != Status.Running ) { + return; + } + + isPaused = true; + OnPause(); + } + + ///---------------------------------------------------------------------------------------------- + + ///Called once when the actions is executed. + virtual protected void OnExecute() { } + ///Called every frame, if and while the action is running and until it ends. + virtual protected void OnUpdate() { } + ///Called whenever the action ends due to any reason with the argument denoting whether the action was interrupted or finished properly. + virtual protected void OnStop(bool interrupted) { OnStop(); } + ///Called whenever the action ends due to any reason. + virtual protected void OnStop() { } + ///Called when the action gets paused + virtual protected void OnPause() { } + ///Called when the action resumes after being paused + virtual protected void OnResume() { } + ///---------------------------------------------------------------------------------------------- + + [System.Obsolete("Use 'Execute'")] + public Status ExecuteAction(Component agent, IBlackboard blackboard) { return Execute(agent, blackboard); } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs.meta new file mode 100644 index 0000000..dc94070 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ActionTask.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6a6c2ecd3bd33f46bc58c3fdb34467c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs new file mode 100644 index 0000000..2c0768d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs @@ -0,0 +1,258 @@ +#if UNITY_EDITOR +using UnityEditor; +using NodeCanvas.Editor; +#endif + +using System.Collections.Generic; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using UnityEngine; + +namespace NodeCanvas.Framework +{ + + /// ConditionList is a ConditionTask itself that holds many ConditionTasks. It can be set to either require all true or any true. + [DoNotList] + public class ConditionList : ConditionTask + { + + public enum ConditionsCheckMode + { + AllTrueRequired, + AnyTrueSuffice + } + + public ConditionsCheckMode checkMode; + public List conditions = new List(); + + private bool allTrueRequired { get { return checkMode == ConditionsCheckMode.AllTrueRequired; } } + + + protected override string info { + get + { + if ( conditions.Count == 0 ) { + return "No Conditions"; + } + + var finalText = conditions.Count > 1 ? ( "(" + ( allTrueRequired ? "ALL True" : "ANY True" ) + ")\n" ) : string.Empty; + for ( var i = 0; i < conditions.Count; i++ ) { + + if ( conditions[i] == null ) { + continue; + } + + if ( conditions[i].isUserEnabled ) { + var prefix = "▪"; + finalText += prefix + conditions[i].summaryInfo + ( i == conditions.Count - 1 ? "" : "\n" ); + } + } + return finalText; + } + } + + ///ConditionList overrides to duplicate listed conditions correctly + public override Task Duplicate(ITaskSystem newOwnerSystem) { + var newList = (ConditionList)base.Duplicate(newOwnerSystem); + newList.conditions.Clear(); + foreach ( var condition in conditions ) { + newList.AddCondition((ConditionTask)condition.Duplicate(newOwnerSystem)); + } + + return newList; + } + + //... + protected override void OnEnable() { + //Remark: disable this and instead enable conditions just before execution + // for ( var i = 0; i < conditions.Count; i++ ) { conditions[i].Enable(agent, blackboard); } + } + + //... + protected override void OnDisable() { + for ( var i = 0; i < conditions.Count; i++ ) { conditions[i].Disable(); } + } + + protected override bool OnCheck() { + var succeedChecks = 0; + for ( var i = 0; i < conditions.Count; i++ ) { + + if ( !conditions[i].isUserEnabled ) { + succeedChecks++; + continue; + } + + //enable conditions here before execution, instead of altogether so that it is done only in order + conditions[i].Enable(agent, blackboard); + if ( conditions[i].Check(agent, blackboard) ) { + if ( !allTrueRequired ) { + return true; + } + succeedChecks++; + + } else { + + if ( allTrueRequired ) { + return false; + } + } + } + + return succeedChecks == conditions.Count; + } + + public override void OnDrawGizmosSelected() { + for ( var i = 0; i < conditions.Count; i++ ) { + if ( conditions[i].isUserEnabled ) { + conditions[i].OnDrawGizmosSelected(); + } + } + } + + public void AddCondition(ConditionTask condition) { + + if ( condition is ConditionList ) { + foreach ( var subCondition in ( condition as ConditionList ).conditions ) { + AddCondition(subCondition); + } + return; + } + +#if UNITY_EDITOR + UndoUtility.RecordObject(ownerSystem.contextObject, "List Add Task"); + currentViewCondition = condition; +#endif + + conditions.Add(condition); + condition.SetOwnerSystem(this.ownerSystem); + } + + internal override string GetWarningOrError() { + for ( var i = 0; i < conditions.Count; i++ ) { + var result = conditions[i].GetWarningOrError(); + if ( result != null ) { return result; } + } + return null; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + private ConditionTask currentViewCondition; + + //... + protected override void OnTaskInspectorGUI() { + ShowListGUI(); + ShowNestedConditionsGUI(); + } + + ///Show the sub-tasks list + public void ShowListGUI() { + + TaskEditor.ShowCreateTaskSelectionButton(ownerSystem, AddCondition); + + ValidateList(); + + if ( conditions.Count == 0 ) { + EditorGUILayout.HelpBox("No Conditions", MessageType.None); + return; + } + + if ( conditions.Count == 1 ) { return; } + + EditorUtils.ReorderableList(conditions, (i, picked) => + { + var condition = conditions[i]; + GUI.color = Color.white.WithAlpha(condition == currentViewCondition ? 0.75f : 0.25f); + GUILayout.BeginHorizontal("box"); + + GUI.color = Color.white.WithAlpha(condition.isUserEnabled ? 0.8f : 0.25f); + GUI.enabled = !Application.isPlaying; + condition.isUserEnabled = EditorGUILayout.Toggle(condition.isUserEnabled, GUILayout.Width(18)); + GUI.enabled = true; + + GUILayout.Label(condition.summaryInfo, GUILayout.MinWidth(0), GUILayout.ExpandWidth(true)); + + if ( !Application.isPlaying && GUILayout.Button("X", GUILayout.MaxWidth(20)) ) { + UndoUtility.RecordObject(ownerSystem.contextObject, "List Remove Task"); + conditions.RemoveAt(i); + if ( conditions.Count == 1 ) { conditions[0].isUserEnabled = true; } + } + + GUILayout.EndHorizontal(); + + var lastRect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(lastRect, MouseCursor.Link); + if ( Event.current.type == EventType.MouseDown && lastRect.Contains(Event.current.mousePosition) ) { + currentViewCondition = condition == currentViewCondition ? null : condition; + Event.current.Use(); + } + + GUI.color = Color.white; + }); + + checkMode = (ConditionsCheckMode)EditorGUILayout.EnumPopup(checkMode); + } + + ///Show currently selected task inspector + public void ShowNestedConditionsGUI() { + + if ( conditions.Count == 1 ) { + currentViewCondition = conditions[0]; + } + + if ( currentViewCondition != null ) { + EditorUtils.Separator(); + TaskEditor.TaskFieldSingle(currentViewCondition, (c) => + { + var i = conditions.IndexOf(currentViewCondition); + if ( c == null ) { + conditions.RemoveAt(i); + } else { + conditions[i] = (ConditionTask)c; + } + currentViewCondition = c as ConditionTask; + }); + } + } + + //Validate possible null tasks + void ValidateList() { + for ( var i = conditions.Count; i-- > 0; ) { + if ( conditions[i] == null ) { + conditions.RemoveAt(i); + } + } + } + + [ContextMenu("Save List Preset")] + void DoSavePreset() { + var path = EditorUtility.SaveFilePanelInProject("Save Preset", "", "conditionList", ""); + if ( !string.IsNullOrEmpty(path) ) { + System.IO.File.WriteAllText(path, JSONSerializer.Serialize(typeof(ConditionList), this, null, true)); //true for pretyJson + AssetDatabase.Refresh(); + } + } + + [ContextMenu("Load List Preset")] + void DoLoadPreset() { + var path = EditorUtility.OpenFilePanel("Load Preset", "Assets", "conditionList"); + if ( !string.IsNullOrEmpty(path) ) { + var json = System.IO.File.ReadAllText(path); + var list = JSONSerializer.TryDeserializeOverwrite(this, json); + this.conditions = list.conditions; + this.checkMode = list.checkMode; + this.currentViewCondition = null; + foreach ( var a in conditions ) { + a.SetOwnerSystem(this.ownerSystem); + } + } + } + + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs.meta new file mode 100644 index 0000000..5b9e5fd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionList.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb6fc20be7946ab4ea3fb06ff3a3afe3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs new file mode 100644 index 0000000..9d797ce --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using NodeCanvas.Framework.Internal; +using UnityEngine; + + +namespace NodeCanvas.Framework +{ + + ///Base class for Conditions. Conditions dont span multiple frames like actions and return true or false immediately on execution. Derive this to create your own. + //Generic version to define the AgentType where T is the agentType (Component or Interface) required by the Condition. + //For GameObject, use 'Transform' + abstract public class ConditionTask : ConditionTask where T : class + { + sealed public override Type agentType { get { return typeof(T); } } + new public T agent { get { return base.agent as T; } } + } + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR //handles missing types + [fsObject(Processor = typeof(fsRecoveryProcessor))] +#endif + + ///Base class for all Conditions. Conditions dont span multiple frames like actions and return true or false immediately on execution. Derive this to create your own + abstract public class ConditionTask : Task + { + + [SerializeField] + private bool _invert; + + private int yieldReturn = -1; + private int yields; + private bool isRuntimeEnabled; + + public bool invert { + get { return _invert; } + set { _invert = value; } + } + + ///... + public void Enable(Component agent, IBlackboard bb) { + if ( !isRuntimeEnabled && isUserEnabled ) { + if ( Set(agent, bb) ) { + isRuntimeEnabled = true; + OnEnable(); + } + } + } + + ///... + public void Disable() { + if ( isRuntimeEnabled && isUserEnabled ) { + isRuntimeEnabled = false; + OnDisable(); + } + } + + [System.Obsolete("Use 'Check'")] + public bool CheckCondition(Component agent, IBlackboard blackboard) { return Check(agent, blackboard); } + + ///Check the condition for the provided agent and with the provided blackboard + public bool Check(Component agent, IBlackboard blackboard) { + + if ( !isUserEnabled ) { + return false; + } + + if ( !Set(agent, blackboard) ) { + return false; + } + + Debug.Assert(isRuntimeEnabled, "Condition.Check when enabled = false"); + + if ( yieldReturn != -1 ) { + var b = invert ? !( yieldReturn == 1 ) : ( yieldReturn == 1 ); + yieldReturn = -1; + return b; + } + + return invert ? !OnCheck() : OnCheck(); + } + + ///Enables, Checks then Disables the condition. Useful for one-off checks only + public bool CheckOnce(Component agent, IBlackboard blackboard) { + Enable(agent, blackboard); + var result = Check(agent, blackboard); + Disable(); + return result; + } + + ///Helper method that holds the return value provided for one frame, for the condition to return. + protected void YieldReturn(bool value) { + if ( isRuntimeEnabled ) { + yieldReturn = value ? 1 : 0; + StartCoroutine(Flip()); + } + } + + //... + IEnumerator Flip() { + yields++; + yield return null; + yields--; + if ( yields == 0 ) { + yieldReturn = -1; + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Override to do things when condition is enabled + virtual protected void OnEnable() { } + ///Override to do things when condition is disabled + virtual protected void OnDisable() { } + ///Override to return whether the condition is true or false. The result will be inverted if Invert is checked. + virtual protected bool OnCheck() { return true; } + + ///---------------------------------------------------------------------------------------------- + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs.meta new file mode 100644 index 0000000..2b82dd0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ConditionTask.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d48020a3c8fd44489a3ada362367bee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs new file mode 100644 index 0000000..ebe0b61 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs @@ -0,0 +1,17 @@ +using UnityEngine; + +namespace NodeCanvas.Framework +{ + ///An interface used to provide default agent and blackboard references to tasks and let tasks 'interface' with the root system + public interface ITaskSystem + { + Component agent { get; } + IBlackboard blackboard { get; } + Object contextObject { get; } + float elapsedTime { get; } + float deltaTime { get; } + void UpdateTasksOwner(); + void SendEvent(string name, object value, object sender); + void SendEvent(string name, T value, object sender); + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs.meta new file mode 100644 index 0000000..029fb5b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/ITaskSystem.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50e8ffec84806c940b52a195bfa2acf1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal.meta new file mode 100644 index 0000000..dc350cd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7c03c00c6d790d9448d2faa87d52e040 +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs new file mode 100644 index 0000000..ca2a5f4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs @@ -0,0 +1,47 @@ +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using UnityEngine; + + +namespace NodeCanvas.Framework.Internal +{ + + /// Injected when an ActionTask is missing. Recovers back when that ActionTask is found. + [DoNotList] + [Description("Please resolve the MissingAction issue by either replacing the action, importing the missing action type, or refactoring the type in GraphRefactor.")] + public class MissingAction : ActionTask, IMissingRecoverable + { + + [SerializeField] + private string _missingType; + [SerializeField] + private string _recoveryState; + + string IMissingRecoverable.missingType { + get { return _missingType; } + set { _missingType = value; } + } + + string IMissingRecoverable.recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + + protected override string info { + get { return ReflectionTools.FriendlyTypeName(_missingType).FormatError(); } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnTaskInspectorGUI() { + GUILayout.Label(_missingType.FormatError()); + GUILayout.Label(_recoveryState); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs.meta new file mode 100644 index 0000000..e8d14cc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa24052d6e1042e4681a578dd847302f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs new file mode 100644 index 0000000..f5c6645 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs @@ -0,0 +1,48 @@ +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using UnityEngine; + + +namespace NodeCanvas.Framework.Internal +{ + + /// Injected when a ConditionTask is missing. Recovers back when that condition is found. + [DoNotList] + [Description("Please resolve the MissingCondition issue by either replacing the condition, importing the missing condition type, or refactoring the type in GraphRefactor.")] + public class MissingCondition : ConditionTask, IMissingRecoverable + { + + [SerializeField] + private string _missingType; + [SerializeField] + private string _recoveryState; + + string IMissingRecoverable.missingType { + get { return _missingType; } + set { _missingType = value; } + } + + string IMissingRecoverable.recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + + protected override string info { + get { return ReflectionTools.FriendlyTypeName(_missingType).FormatError(); } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- + +#if UNITY_EDITOR + + protected override void OnTaskInspectorGUI() { + GUILayout.Label(_missingType.FormatError()); + GUILayout.Label(_recoveryState); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs.meta new file mode 100644 index 0000000..6ab78e5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/MissingCondition.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2af354eae80ae15429dcb421c45a00d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs new file mode 100644 index 0000000..fe32f12 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +namespace NodeCanvas.Framework.Internal +{ + + ///A special BBParameter for the task agent used in Task. This should be a nested class of Task, but WSA has a bug in doing so. Remark: BBParameter has fsAutoInstance, but we exclude this from being auto instanced! + [System.Serializable, ParadoxNotion.Serialization.FullSerializer.fsAutoInstance(false)] + sealed public class TaskAgentParameter : BBParameter + { + [SerializeField] private System.Type _type; + + public override System.Type varType => _type ?? typeof(UnityEngine.Object); + + new public UnityEngine.Object value { + get + { + var o = base.value; + if ( o is GameObject ) { return ( o as GameObject ).transform; } + if ( o is Component ) { return (Component)o; } + return null; + } + set { _value = value; } //the linked blackboard variable is NEVER set through the TaskAgentParameter. Instead we set the local (inherited) variable + } + + public override object GetValueBoxed() { return this.value; } + public override void SetValueBoxed(object newValue) { this.value = newValue as UnityEngine.Object; } + + ///Sets the hint type that the parameter is + public void SetType(System.Type newType) { + if ( typeof(UnityEngine.Object).IsAssignableFrom(newType) ) { + _type = newType; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs.meta new file mode 100644 index 0000000..5a15e2e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Internal/TaskAgentParameter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f55bb2e7197697040afccc233b47749d +timeCreated: 1490012027 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs new file mode 100644 index 0000000..32f8905 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs @@ -0,0 +1,448 @@ +#define CONVENIENCE_OVER_PERFORMANCE + +using System; +using System.Collections; +using ParadoxNotion; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using ParadoxNotion.Services; +using NodeCanvas.Framework.Internal; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Framework +{ + + //*RECOVERY PROCESSOR IS INSTEAD APPLIED RESPECTIVELY IN ACTIONTASK - CONDITIONTASK*// + + ///The base class for all Actions and Conditions. You dont actually use or derive this class. Instead derive from ActionTask and ConditionTask + [Serializable, fsDeserializeOverwrite, SpoofAOT] + abstract public partial class Task : ISerializationCollectable, ISerializationCallbackReceiver + { + + ///---------------------------------------------------------------------------------------------- + + //We set the hint type that the agent parameter (if any) is. + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( agentType == null ) { _agentParameter = null; } + if ( _agentParameter != null ) { _agentParameter.SetType(agentType); } + } + void ISerializationCallbackReceiver.OnAfterDeserialize() { } + + ///---------------------------------------------------------------------------------------------- + + ///If the field type this attribute is used derives Component, then it will be retrieved from the agent. The field is also considered Required for correct initialization. + [AttributeUsage(AttributeTargets.Field)] + protected class GetFromAgentAttribute : Attribute { } + + ///---------------------------------------------------------------------------------------------- + + [fsSerializeAs("_isDisabled")] + private bool _isUserDisabled; + [fsSerializeAs("overrideAgent")] + internal protected TaskAgentParameter _agentParameter; + + // + private ITaskSystem _ownerSystem; + private Component _currentAgent; + private string _taskName; + private string _taskDescription; + private string _obsoleteInfo; + private bool _isRuntimeActive; + private bool _isInitSuccess; + private EventRouter _eventRouter; + // + + ///---------------------------------------------------------------------------------------------- + + //required + public Task() { } + + ///Create a new Task of type assigned to the target ITaskSystem + public static T Create(ITaskSystem newOwnerSystem) where T : Task { return (T)Create(typeof(T), newOwnerSystem); } + public static Task Create(Type type, ITaskSystem newOwnerSystem) { + if ( type.IsGenericTypeDefinition ) { type = type.MakeGenericType(type.GetFirstGenericParameterConstraintType()); } + var newTask = (Task)Activator.CreateInstance(type); + UndoUtility.RecordObject(newOwnerSystem.contextObject, "New Task"); + BBParameter.SetBBFields(newTask, newOwnerSystem.blackboard); + newTask.Validate(newOwnerSystem); + newTask.OnCreate(newOwnerSystem); + return newTask; + } + + ///Duplicate the task for the target ITaskSystem + virtual public Task Duplicate(ITaskSystem newOwnerSystem) { + var newTask = JSONSerializer.Clone(this); + UndoUtility.RecordObject(newOwnerSystem.contextObject, "Duplicate Task"); + BBParameter.SetBBFields(newTask, newOwnerSystem.blackboard); + newTask.Validate(newOwnerSystem); + return newTask; + } + + ///Validate the task in respects to the target ITaskSystem + public void Validate(ITaskSystem ownerSystem) { + SetOwnerSystem(ownerSystem); + OnValidate(ownerSystem); + var hardError = GetHardError(); + if ( hardError != null ) { + Logger.LogError(hardError, LogTag.VALIDATION, this); + } + } + + ///Sets the system in which this task lives in + public void SetOwnerSystem(ITaskSystem newOwnerSystem) { + Debug.Assert(newOwnerSystem != null, "Null ITaskSystem set"); + ownerSystem = newOwnerSystem; + } + + ///---------------------------------------------------------------------------------------------- + + ///The system this task belongs to from which defaults are taken from. + public ITaskSystem ownerSystem { + get { return _ownerSystem; } + private set { _ownerSystem = value; } + } + + ///The owner system's assigned agent + public Component ownerSystemAgent => ownerSystem != null ? ownerSystem.agent : null; + + ///The owner system's assigned blackboard + public IBlackboard ownerSystemBlackboard => ownerSystem != null ? ownerSystem.blackboard : null; + + ///The time in seconds that the owner system is running + public float ownerSystemElapsedTime => ownerSystem != null ? ownerSystem.elapsedTime : 0; + // + + ///Is the Task user enabled? + public bool isUserEnabled { + get { return !_isUserDisabled; } + internal set { _isUserDisabled = !value; } + } + + ///Is the task obsolete? (marked by [Obsolete]). string.Empty: is not. + public string obsolete { + get + { + if ( _obsoleteInfo == null ) { + var att = this.GetType().RTGetAttribute(true); + _obsoleteInfo = att != null ? att.Message : string.Empty; + } + return _obsoleteInfo; + } + } + + ///The friendly task name. This can be overriden with the [Name] attribute + public string name { + get + { + if ( _taskName == null ) { + var nameAtt = this.GetType().RTGetAttribute(false); + _taskName = nameAtt != null ? nameAtt.name : GetType().FriendlyName().SplitCamelCase(); + } + return _taskName; + } + } + + ///The help description of the task if it has any through [Description] attribute + public string description { + get + { + if ( _taskDescription == null ) { + var descAtt = this.GetType().RTGetAttribute(true); + _taskDescription = descAtt != null ? descAtt.description : string.Empty; + } + return _taskDescription; + } + } + + ///A short summary of what the task will finaly do. + public string summaryInfo { + get + { +#if UNITY_EDITOR + if ( !NodeCanvas.Editor.Prefs.showTaskSummary && !( this is ActionList ) && !( this is ConditionList ) ) { + return string.Format("{0}", name); + } +#endif + + if ( this is ActionTask ) { return ( agentIsOverride ? "* " : "" ) + info; } + if ( this is ConditionTask ) { return ( agentIsOverride ? "* " : "" ) + ( ( this as ConditionTask ).invert ? "If ! " : "If " ) + info; } + return info; + } + } + + ///Override this and return the information of the task summary + virtual protected string info => name; + + ///The type that the agent will be set to by getting component from itself on task initialize. Also defined by using the generic versions of Action and Condition Tasks. You can omit this to keep the agent propagated as is or if there is no need for a specific type anyway. + virtual public Type agentType => null; + + ///Helper summary info to display final agent string within task info if needed + public string agentInfo => _agentParameter != null ? _agentParameter.ToString() : "Self"; + + ///The name of the blackboard variable selected if the agent is overriden and set to a blackboard variable or direct assignment. + public string agentParameterName => _agentParameter != null ? _agentParameter.name : null; + + ///Is the agent overriden or the default taken from owner system will be used? + public bool agentIsOverride { + get { return _agentParameter != null; } + set + { + if ( value == false && _agentParameter != null ) { + _agentParameter = null; + } + + if ( value == true && _agentParameter == null ) { + _agentParameter = new TaskAgentParameter(); + _agentParameter.bb = blackboard; + } + } + } + + ///The current or last executive agent of this task + public Component agent { + get + { + if ( _currentAgent != null ) { return _currentAgent; } + var input = agentIsOverride ? (Component)_agentParameter.value : ownerSystemAgent; + return input.TransformToType(agentType); + } + } + + ///The current or last blackboard used by this task + public IBlackboard blackboard => ownerSystemBlackboard; + + ///The cached EventRouter of the current agent used to subscribe/unsubscribe events. Use this for custom named events as well -> '.router.onCustomEvent' + public EventRouter router => _eventRouter != null ? _eventRouter : _eventRouter = agent == null ? null : agent.gameObject.GetAddComponent(); + + ///---------------------------------------------------------------------------------------------- + + ///Actions and Conditions call this before execution. Returns if the task was sucessfully initialized as well + protected bool Set(Component newAgent, IBlackboard newBB) { + + Debug.Assert(ReferenceEquals(newBB, ownerSystemBlackboard), "Set Blackboard != Owner Blackboard"); + + if ( agentIsOverride ) { + newAgent = (Component)_agentParameter.value; + } + + if ( _currentAgent != null && newAgent != null && _currentAgent.gameObject == newAgent.gameObject ) { + return _isInitSuccess; + } + + return _isInitSuccess = Initialize(newAgent); + } + + //Initialize whenever agent is set to a new value + bool Initialize(Component newAgent) { + + //purge cached reference whenever we init new agent + _eventRouter = null; + + //"Transform" the agent to the agentType and set as current + _currentAgent = newAgent.TransformToType(agentType); + + //error if it's null but an agentType is required + if ( _currentAgent == null && agentType != null ) { + return Error("Failed to resolve Agent to requested type '" + agentType + "', or new Agent is NULL. Does the Agent has the requested Component?"); + } + + //Use the field attributes + if ( InitializeFieldAttributes(_currentAgent) == false ) { + return false; + } + + //let user make further adjustments and inform us if there was an error + var error = OnInit(); + if ( error != null ) { + return Error(error); + } + + return true; + } + + //... + bool InitializeFieldAttributes(Component newAgent) { + +#if CONVENIENCE_OVER_PERFORMANCE + + //Usage of [RequiredField] and [GetFromAgent] attributes + var fields = this.GetType().RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var field = fields[i]; + +#if UNITY_EDITOR + if ( field.RTIsDefined(true) ) { + var value = field.GetValue(this); + + if ( value == null || value.Equals(null) ) { + return Error(string.Format("A required field named '{0}' is not set.", field.Name)); + } + + if ( field.FieldType == typeof(string) && string.IsNullOrEmpty((string)value) ) { + return Error(string.Format("A required string field named '{0}' is not set.", field.Name)); + } + + if ( typeof(BBParameter).RTIsAssignableFrom(field.FieldType) && ( value as BBParameter ).isNull ) { + return Error(string.Format("A required BBParameter field value named '{0}' is not set.", field.Name)); + } + } +#endif + + if ( newAgent != null && ( typeof(Component).RTIsAssignableFrom(field.FieldType) || field.FieldType.IsInterface ) ) { + if ( field.RTIsDefined(true) ) { + var o = newAgent.GetComponent(field.FieldType); + field.SetValue(this, o); + if ( ReferenceEquals(o, null) ) { + return Error(string.Format("GetFromAgent Attribute failed to get the required Component of type '{0}' from '{1}'. Does it exist?", field.FieldType.Name, agent.gameObject.name)); + } + } + } + + } +#endif + + return true; + } + + //Utility function to log and return errors + protected bool Error(string error, string tag = LogTag.EXECUTION) { + Logger.LogError(error, tag, this); + return false; + } + + ///---------------------------------------------------------------------------------------------- + + ///Tasks can start coroutine through MonoManager + protected Coroutine StartCoroutine(IEnumerator routine) { + return MonoManager.current != null ? MonoManager.current.StartCoroutine(routine) : null; + } + + ///Tasks can start coroutine through MonoManager + protected void StopCoroutine(Coroutine routine) { + if ( MonoManager.current != null ) { MonoManager.current.StopCoroutine(routine); } + } + + ///---------------------------------------------------------------------------------------------- + + ///Sends an event through the owner system to handle (same as calling ownerSystem.SendEvent) + protected void SendEvent(string name) { + if ( ownerSystem != null ) { ownerSystem.SendEvent(name, null, this); } + } + ///Sends an event through the owner system to handle (same as calling ownerSystem.SendEvent) + protected void SendEvent(string name, T value) { + if ( ownerSystem != null ) { ownerSystem.SendEvent(name, value, this); } + } + + ///---------------------------------------------------------------------------------------------- + + //Gather warnings for user convernience. Basicaly used in the editor, but could be used in runtime as well. + virtual internal string GetWarningOrError() { + + var hardError = GetHardError(); + if ( hardError != null ) { return "* " + hardError; } + + var userError = OnErrorCheck(); + if ( userError != null ) { return userError; } + + if ( obsolete != string.Empty ) { + return string.Format("Task is obsolete: '{0}'", obsolete); + } + + if ( agentType != null && agent == null ) { + if ( _agentParameter == null || ( _agentParameter.isNoneOrNull && !_agentParameter.isDefined ) ) { + return string.Format("* '{0}' target agent is null", agentType.Name); + } + } + + var fields = this.GetType().RTGetFields(); + for ( var i = 0; i < fields.Length; i++ ) { + var field = fields[i]; + if ( field.RTIsDefined(true) ) { + var value = field.GetValue(this); + if ( value == null || value.Equals(null) ) { + return string.Format("* Required field '{0}' is null", field.Name.SplitCamelCase()); + } + if ( field.FieldType == typeof(string) && string.IsNullOrEmpty((string)value) ) { + return string.Format("* Required string field '{0}' is null or empty", field.Name.SplitCamelCase()); + } + if ( typeof(BBParameter).RTIsAssignableFrom(field.FieldType) ) { + var bbParam = value as BBParameter; + if ( bbParam == null ) { + return string.Format("* BBParameter '{0}' is null", field.Name.SplitCamelCase()); + } else if ( !bbParam.isDefined && bbParam.isNoneOrNull ) { + return string.Format("* Required parameter '{0}' is null", field.Name.SplitCamelCase()); + } + } + } + } + return null; + } + + /// Override and return anything but null to mark the task has an error + virtual protected string OnErrorCheck() { return null; } + + ///A hard error, missing things + string GetHardError() { + if ( this is IMissingRecoverable ) { + return string.Format("Missing Task '{0}'", ( this as IMissingRecoverable ).missingType); + } + + if ( this is IReflectedWrapper ) { + var info = ( this as IReflectedWrapper ).GetSerializedInfo(); + if ( info != null && info.AsMemberInfo() == null ) { return string.Format("Missing Reflected Info '{0}'", info.AsString()); } + } + return null; + } + + ///---------------------------------------------------------------------------------------------- + + ///Override in Tasks. This is called AFTER a NEW agent is set, after initialization and before execution. Return null if everything is ok, or a string with the error if not. + virtual protected string OnInit() { return null; } + ///Called once the first time task is created + virtual public void OnCreate(ITaskSystem ownerSystem) { } + ///Called when the task is created, duplicated or otherwise needs validation. + virtual public void OnValidate(ITaskSystem ownerSystem) { } + [System.Obsolete("Use OnDrawGizmosSelected")] + virtual public void OnDrawGizmos() { OnDrawGizmosSelected(); } + ///Draw gizmos when the element containing the task is selected + virtual public void OnDrawGizmosSelected() { } + + ///---------------------------------------------------------------------------------------------- + + //... + public override string ToString() { + return summaryInfo; + } + + ///---------------------------------------------------------------------------------------------- + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + private object _icon; + //The icon if any of the task + public Texture2D icon { + get + { + if ( _icon == null ) { + var iconAtt = this.GetType().RTGetAttribute(true); + _icon = iconAtt != null ? TypePrefs.GetTypeIcon(iconAtt, this) : null; + if ( _icon == null ) { _icon = new object(); } + } + return _icon as Texture2D; + } + } + + ///Draw an automatic editor inspector for this task. + protected void DrawDefaultInspector() { EditorUtils.ReflectedObjectInspector(this, ownerSystem.contextObject); } + ///Optional override to show custom controls whenever the ShowTaskInspectorGUI is called. By default controls will automaticaly show for most types. + virtual protected void OnTaskInspectorGUI() { DrawDefaultInspector(); } + +#endif + ///---------------------------------------------------------------------------------------------- + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs.meta new file mode 100644 index 0000000..86f5e00 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Tasks/Task.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6cde6cc0493738d47a9ad3f247de8bdd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables.meta new file mode 100644 index 0000000..9d21e75 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d5b522ce31ff7524ea6a1b190a801072 +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs new file mode 100644 index 0000000..c3c9e2c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs @@ -0,0 +1,101 @@ +using UnityEngine; +using System.Collections.Generic; +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework +{ + + [CreateAssetMenu(menuName = "ParadoxNotion/CanvasCore/Blackboard Asset")] + public class AssetBlackboard : ScriptableObject, ISerializationCallbackReceiver, IGlobalBlackboard + { + + public event System.Action onVariableAdded; + public event System.Action onVariableRemoved; + + [SerializeField] private string _serializedBlackboard; + [SerializeField] private List _objectReferences; + [SerializeField] private string _UID = System.Guid.NewGuid().ToString(); + + [System.NonSerialized] private string _identifier; + [System.NonSerialized] private BlackboardSource _blackboard = new BlackboardSource(); + + ///---------------------------------------------------------------------------------------------- + void ISerializationCallbackReceiver.OnBeforeSerialize() { SelfSerialize(); } + void ISerializationCallbackReceiver.OnAfterDeserialize() { SelfDeserialize(); } + ///---------------------------------------------------------------------------------------------- + + void SelfSerialize() { + _objectReferences = new List(); + _serializedBlackboard = JSONSerializer.Serialize(typeof(BlackboardSource), _blackboard, _objectReferences); + } + + void SelfDeserialize() { + _blackboard = JSONSerializer.Deserialize(_serializedBlackboard, _objectReferences); + if ( _blackboard == null ) { _blackboard = new BlackboardSource(); } + } + + ///---------------------------------------------------------------------------------------------- + + Dictionary IBlackboard.variables { get { return _blackboard.variables; } set { _blackboard.variables = value; } } + UnityEngine.Object IBlackboard.unityContextObject => this; + IBlackboard IBlackboard.parent => null; + Component IBlackboard.propertiesBindTarget => null; + string IBlackboard.independantVariablesFieldName => null; + + void IBlackboard.TryInvokeOnVariableAdded(Variable variable) { if ( onVariableAdded != null ) onVariableAdded(variable); } + void IBlackboard.TryInvokeOnVariableRemoved(Variable variable) { if ( onVariableRemoved != null ) onVariableRemoved(variable); } + + public string identifier => _identifier; + public string UID => _UID; + + [ContextMenu("Show Json")] + void ShowJson() { JSONSerializer.ShowData(_serializedBlackboard, this.name); } + + public override string ToString() { return identifier; } + void OnValidate() { _identifier = this.name; } + + ///---------------------------------------------------------------------------------------------- + +#if !UNITY_EDITOR + void OnEnable(){ + this.InitializePropertiesBinding(null, false); + } +#endif + + ///---------------------------------------------------------------------------------------------- + +#if UNITY_EDITOR + private string tempJson; + private List tempObjects; + private bool bindingInit; + + //... + void OnEnable() { + UnityEditor.EditorApplication.playModeStateChanged -= PlayModeChange; + UnityEditor.EditorApplication.playModeStateChanged += PlayModeChange; + if ( ParadoxNotion.Services.Threader.applicationIsPlaying ) { + this.InitializePropertiesBinding(null, false); + bindingInit = true; + } + } + + //... + void PlayModeChange(UnityEditor.PlayModeStateChange state) { + if ( state == UnityEditor.PlayModeStateChange.EnteredPlayMode ) { + tempJson = _serializedBlackboard; + tempObjects = _objectReferences; + if ( !bindingInit ) { this.InitializePropertiesBinding(null, false); } + } + if ( state == UnityEditor.PlayModeStateChange.ExitingPlayMode ) { + _serializedBlackboard = tempJson; + _objectReferences = tempObjects; + bindingInit = false; + SelfDeserialize(); + } + } + +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs.meta new file mode 100644 index 0000000..3c027ca --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/AssetBlackboard.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ee4fa5caed5fb2b43b903ef7859c9bf9 +timeCreated: 1426274359 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs new file mode 100644 index 0000000..eea8cff --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs @@ -0,0 +1,439 @@ +using System; +using System.Collections; +using ParadoxNotion; +using ParadoxNotion.Serialization.FullSerializer; +using NodeCanvas.Framework.Internal; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; +using Threader = ParadoxNotion.Services.Threader; + +namespace NodeCanvas.Framework +{ + +#if UNITY_EDITOR //handles missing parameter types and upgrades of T to BBParameter + [fsObject(Processor = typeof(fsBBParameterProcessor))] +#endif + + //TODO: Change GlobalBlackboard resolution to use BB.UID + + ///Class for Parameter Variables that allow binding to a Blackboard variable or specifying a value directly. + [ParadoxNotion.Design.SpoofAOT] + [Serializable, fsAutoInstance, fsUninitialized] + abstract public class BBParameter : ISerializationCollectable, ISerializationCallbackReceiver + { + + //reset value to default when using bb + void ISerializationCallbackReceiver.OnBeforeSerialize() { if ( useBlackboard ) { SetDefaultValue(); } } + void ISerializationCallbackReceiver.OnAfterDeserialize() { } + + //null means use local _value, empty means [NONE], anything else means use bb variable. + [SerializeField] private string _name; + //the target bb variable ID + [SerializeField] private string _targetVariableID; + + private IBlackboard _bb; + private Variable _varRef; + + ///Raised when the BBParameter is linked to a different variable reference. + public event Action onVariableReferenceChanged; + + ///---------------------------------------------------------------------------------------------- + + //required + public BBParameter() { } + + ///Create and return an instance of a generic BBParameter with type argument provided and set to read from the specified blackboard + public static BBParameter CreateInstance(Type t, IBlackboard bb) { + if ( t == null ) { return null; } + var newBBParam = (BBParameter)Activator.CreateInstance(typeof(BBParameter<>).RTMakeGenericType(t)); + newBBParam.bb = bb; + return newBBParam; + } + + ///Set the blackboard reference provided for all BBParameters fields found in target + public static void SetBBFields(object target, IBlackboard bb) { + if ( target == null ) { return; } + ParadoxNotion.Serialization.JSONSerializer.SerializeAndExecuteNoCycles(target.GetType(), target, (o, d) => + { + if ( o is BBParameter ) { ( o as BBParameter ).bb = bb; } + }); + } + + ///---------------------------------------------------------------------------------------------- + + ///The target variable ID + public string targetVariableID { + get { return _targetVariableID; } + protected set { _targetVariableID = value; } + } + + ///The Variable object reference if any.One is set when name change as well as when SetBBFields is called. Setting the varRef also binds this parameter with that Variable. + public Variable varRef { + get { return _varRef; } + protected set + { + if ( _varRef != value ) { + +#if UNITY_EDITOR + //Only required in editor for clearing var reference and updating name + if ( !Threader.applicationIsPlaying ) { + if ( _varRef != null ) { + _varRef.onDestroy -= OnRefDestroyed; + _varRef.onNameChanged -= OnRefNameChanged; + } + if ( value != null ) { + value.onDestroy += OnRefDestroyed; + value.onNameChanged += OnRefNameChanged; + OnRefNameChanged(value.name); + } + if ( value != null ) { + targetVariableID = value.ID; + } else if ( string.IsNullOrEmpty(name) ) { + targetVariableID = null; + } + } +#endif + + _varRef = value; + Bind(value); + if ( onVariableReferenceChanged != null ) { + onVariableReferenceChanged(value); + } + } + } + } + +#if UNITY_EDITOR + //clear ref + void OnRefDestroyed() { + varRef = null; + targetVariableID = null; + } + + //Is the param's variable reference changed name? + void OnRefNameChanged(string newName) { + if ( _name.Contains("/") ) { //is global + var bbName = _name.Split('/')[0]; + newName = bbName + "/" + newName; + } + _name = newName; + } +#endif + + ///The name of the Variable to read/write from. Null if not, Empty if [NONE]. + public string name { + get { return _name; } + set + { + if ( _name != value ) { + _name = value; + if ( string.IsNullOrEmpty(value) ) { + varRef = null; + targetVariableID = null; + } else { + varRef = value != null ? ResolveReference(bb, false) : null; + } + } + } + } + + ///The blackboard to read/write from. Setting this also sets the variable reference if found + public IBlackboard bb { + get { return _bb; } + set + { + if ( _bb != value ) { +#if UNITY_EDITOR + //only nice to have in editor + if ( !Threader.applicationIsPlaying ) { + if ( _bb != null ) { _bb.onVariableAdded -= OnBBVariableAdded; } + if ( value != null ) { value.onVariableAdded += OnBBVariableAdded; } + } +#endif + _bb = value; + } + varRef = value != null ? ResolveReference(_bb, true) : null; + } + } + +#if UNITY_EDITOR + //reason: automatically links to varefs if ref is missing when var is added to bb + void OnBBVariableAdded(Variable variable) { + // if ( variable.ID == targetVariableID ) { varRef = variable; } + if ( this.varRef == null && variable.name == this.name && variable.CanConvertTo(varType) ) { + varRef = variable; + } + } +#endif + + ///Is the parameter -set to or should- read from a blackboard variable? + public bool useBlackboard { + get { return name != null; } + set + { + if ( value == false ) { + name = null; + targetVariableID = null; + varRef = null; + } + if ( value == true && name == null ) { + name = string.Empty; + } + } + } + + ///Parameter is presumed dynamic if it starts with an "_" by convention + public bool isPresumedDynamic => name != null && name.StartsWith("_"); + ///Has the user selected [NONE] in the dropdown? + public bool isNone => name == string.Empty; + ///Is the final value null? + public bool isNull => ObjectUtils.AnyEquals(value, null); + ///Shortcut to exactly what it says :) + public bool isNoneOrNull => isNone || isNull; + ///Shortcut to 'useBlackboard AND !isNone' + public bool isDefined => !string.IsNullOrEmpty(name); + ///The type of the Variable reference or null if there is no Variable referenced. The returned type is for most cases the same as 'VarType'. RefType and VarType can be different when an AutoConvert is taking place. + public Type refType => varRef != null ? varRef.varType : null; + + ///The value as object type when accessing from base class. + public object value { get { return GetValueBoxed(); } set { SetValueBoxed(value); } } + + ///The type of the value that this BBParameter holds + abstract public Type varType { get; } + ///Set the default value + abstract protected void SetDefaultValue(); + ///Bind the BBParameter to target. Null unbinds. + abstract protected void Bind(Variable data); + ///Same as .value. Used for binding. + abstract public object GetValueBoxed(); + ///Same as .value. Used for binding. + abstract public void SetValueBoxed(object value); + + ///---------------------------------------------------------------------------------------------- + + //TODO: refactor global bbs + ///Set the target blackboard variable to link this parameter with + public void SetTargetVariable(IBlackboard targetBB, Variable targetVariable) { + if ( targetVariable != null ) { + _targetVariableID = targetVariable.ID; + _name = ( targetBB is GlobalBlackboard ) ? string.Format("{0}/{1}", targetBB.identifier, targetVariable.name) : targetVariable.name; + varRef = ResolveReference(this.bb, true); + } else { + targetVariableID = null; + } + } + + ///Resolve the final Variable reference. + Variable ResolveReference(IBlackboard targetBlackboard, bool useID) { + + //avoid more work if we dont use a bb variable + if ( string.IsNullOrEmpty(name) && string.IsNullOrEmpty(targetVariableID) ) { + return null; + } + + var targetName = this.name; + if ( targetName != null && targetName.Contains("/") ) { + var split = targetName.Split('/'); + targetBlackboard = GlobalBlackboard.Find(split[0]); + targetName = split[1]; + } + + Variable result = null; + if ( targetBlackboard == null ) { return null; } + if ( useID && targetVariableID != null ) { result = targetBlackboard.GetVariableByID(targetVariableID); } + if ( result == null && !string.IsNullOrEmpty(targetName) ) { result = targetBlackboard.GetVariable(targetName, varType); } + return result; + } + + ///Promotes the parameter to a variable on the target blackboard (overriden if parameter name is a path to a global bb). + public Variable PromoteToVariable(IBlackboard targetBB) { + + if ( string.IsNullOrEmpty(name) ) { + varRef = null; + return null; + } + + var varName = name; + var bbName = string.Empty; + if ( name.Contains("/") ) { + var split = name.Split('/'); + bbName = split[0]; + varName = split[1]; + targetBB = GlobalBlackboard.Find(bbName); + } + + if ( targetBB == null ) { + varRef = null; + Logger.LogError(string.Format("Parameter '{0}' failed to promote to a variable, because Blackboard named '{1}' could not be found.", varName, bbName), LogTag.VARIABLE, this); + return null; + } + + varRef = targetBB.AddVariable(varName, varType); + if ( varRef != null ) { + Logger.Log(string.Format("Parameter '{0}' (of type '{1}') promoted to a Variable in Blackboard '{2}'.", varName, varType.FriendlyName(), targetBB), LogTag.VARIABLE, this); + } else { + Logger.LogError(string.Format("Parameter {0} (of type '{1}') failed to promote to a Variable in Blackboard '{2}'.", varName, varType.FriendlyName(), targetBB), LogTag.VARIABLE, this); + } + return varRef; + } + + ///Nicely formated text :) + sealed public override string ToString() { + if ( isNone ) { + return "NONE"; + } + if ( useBlackboard ) { + var text = string.Format("${0}", name); +#if UNITY_EDITOR + if ( UnityEditor.EditorGUIUtility.isProSkin ) { + return varRef != null ? text : string.Format("{0}", text); + } else { + return varRef != null ? text : string.Format("{0}", text); + } +#else + return text; +#endif + } + if ( isNull ) { + return "NULL"; + } + if ( value is IList || value is IDictionary ) { + return string.Format("{0}", varType.FriendlyName()); + } + return string.Format("{0}", value.ToStringAdvanced()); + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Use BBParameter to create a parameter possible to be linked to a blackboard Variable + [Serializable] + public class BBParameter : BBParameter + { + + [SerializeField] protected T _value; + + //delegates for Variable binding + private event Func getter; + private event Action setter; + // + + //Value + new public T value { + get + { + if ( getter != null ) { + return getter(); + } + + //Dynamic? + if ( Threader.applicationIsPlaying ) { + if ( varRef == null && bb != null && !string.IsNullOrEmpty(name) ) { + //setting the varRef property also binds it. + varRef = bb.GetVariable(name, typeof(T)); + return getter != null ? getter() : default(T); + } + } + + return _value; + } + set + { + if ( setter != null ) { + setter(value); + return; + } + + if ( isNone ) { + return; + } + + //Dynamic? + if ( varRef == null && bb != null && !string.IsNullOrEmpty(name) ) { + if ( isPresumedDynamic ) { + Logger.Log(string.Format("Dynamic Parameter Variable '{0}' Encountered...", name), LogTag.VARIABLE, this); + //setting the varRef property also binds it + varRef = PromoteToVariable(bb); + if ( setter != null ) { setter(value); } + } else { + Logger.LogError(string.Format("A Parameter Variable named '{0}' is missing. If it was meant to be a dynamic variable, please ensure that it starts with an underscore ('_') prefix by convention.", name), LogTag.EXECUTION, this); + } + return; + } + + _value = value; + } + } + + public override Type varType => typeof(T); + + ///---------------------------------------------------------------------------------------------- + + public BBParameter() { } + public BBParameter(T value) { _value = value; } + + ///Same as .value. Used for binding. + public override object GetValueBoxed() { return value; } + ///Same as .value. Used for binding. + public override void SetValueBoxed(object newValue) { this.value = (T)newValue; } + ///Same as .value. Used for binding. + public T GetValue() { return value; } + ///Same as .value. Used for binding. + public void SetValue(T value) { this.value = value; } + + protected override void SetDefaultValue() { _value = default(T); } + + ///Binds this BBParameter to a Variable. Null unbinds + protected override void Bind(Variable variable) { + _value = default(T); + if ( variable == null ) { + getter = null; + setter = null; + return; + } + + BindGetter(variable); + BindSetter(variable); + } + + //Bind the Getter + bool BindGetter(Variable variable) { + if ( variable is Variable ) { + getter = ( variable as Variable ).GetValue; + return true; + } + + var convertFunc = variable.GetGetConverter(varType); + if ( convertFunc != null ) { + getter = () => { return (T)convertFunc(); }; + return true; + } + + return false; + } + + //Bind the Setter + bool BindSetter(Variable variable) { + if ( variable is Variable ) { + setter = ( variable as Variable ).SetValue; + return true; + } + + var convertFunc = variable.GetSetConverter(varType); + if ( convertFunc != null ) { + setter = (T value) => { convertFunc(value); }; + return true; + } + + //we still set the setter and let us know that is impossible to do the conversion + setter = (T value) => { Logger.LogWarning(string.Format("Setting Parameter Type '{0}' back to Variable Type '{1}' is not possible.", typeof(T).FriendlyName(), variable.varType.FriendlyName()), "AutoConvert", this); }; + return false; + } + + //operator + public static implicit operator BBParameter(T value) { + return new BBParameter { value = value }; + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs.meta new file mode 100644 index 0000000..c6951ff --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/BBParameter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4305efa065d81444fbb28731c8c53f54 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs new file mode 100644 index 0000000..591d6e1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs @@ -0,0 +1,204 @@ +using System; +using System.Collections.Generic; +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization; +using UnityEngine; +using System.Linq; + + +namespace NodeCanvas.Framework +{ + + /// A Blackboard component to hold variables + [ParadoxNotion.Design.SpoofAOT] + public class Blackboard : MonoBehaviour, ISerializationCallbackReceiver, IBlackboard + { + + //Remark: We serialize the whole blackboard as normal which is the previous behaviour. + //To support prefab overrides we now also serialize each variable individually. + //Each serialized variable has it's own list of references since it can be an object with multiple + //UnityObject fields, or simply a list of UnityObjects. + //We keep both old and new serializations. If something goes wrong or needs change with the new one, + //there is still the old one to fallback to. + + [Tooltip("An optional Parent Blackboard Asset to 'inherit' variables from.")] + [SerializeField] private AssetBlackboard _parentBlackboard = null; + [SerializeField] private string _serializedBlackboard; + [SerializeField] private List _objectReferences; + [SerializeField] private SerializationPair[] _serializedVariables; + + [NonSerialized] private BlackboardSource _blackboard = new BlackboardSource(); + [NonSerialized] private bool haltForUndo = false; + [NonSerialized] private string _identifier; + + ///---------------------------------------------------------------------------------------------- + void ISerializationCallbackReceiver.OnBeforeSerialize() { SelfSerialize(); } + void ISerializationCallbackReceiver.OnAfterDeserialize() { SelfDeserialize(); } + ///---------------------------------------------------------------------------------------------- + + ///Self Serialize blackboard + public void SelfSerialize() { + +#if UNITY_EDITOR + //This fixes an edge case of cycle referencing prefab blackboards when the Library folder is deleted + //which was basically due to the prefabs being serialized before the database was re-built. + if ( UnityEditor.EditorApplication.isUpdating ) { + return; + } +#endif + + if ( haltForUndo /*|| ParadoxNotion.Services.Threader.applicationIsPlaying*/ ) { + return; + } + + var newReferences = new List(); + var newSerialization = JSONSerializer.Serialize(typeof(BlackboardSource), _blackboard, newReferences); + if ( newSerialization != _serializedBlackboard || !newReferences.SequenceEqual(_objectReferences) || ( _serializedVariables == null || _serializedVariables.Length != _blackboard.variables.Count ) ) { + + haltForUndo = true; + UndoUtility.RecordObject(this, UndoUtility.GetLastOperationNameOr("Blackboard Change")); + haltForUndo = false; + + _serializedVariables = new SerializationPair[_blackboard.variables.Count]; + for ( var i = 0; i < _blackboard.variables.Count; i++ ) { + var serializedVariable = new SerializationPair(); + serializedVariable._json = JSONSerializer.Serialize(typeof(Variable), _blackboard.variables.ElementAt(i).Value, serializedVariable._references); + _serializedVariables[i] = serializedVariable; + } + + _serializedBlackboard = newSerialization; + _objectReferences = newReferences; + } + } + + ///Self Deserialize blackboard + public void SelfDeserialize() { + + _blackboard = new BlackboardSource(); + if ( !string.IsNullOrEmpty(_serializedBlackboard) /*&& ( _serializedVariables == null || _serializedVariables.Length == 0 )*/ ) { + JSONSerializer.TryDeserializeOverwrite(_blackboard, _serializedBlackboard, _objectReferences); + } + + //this is to handle prefab overrides + if ( _serializedVariables != null && _serializedVariables.Length > 0 ) { + _blackboard.variables.Clear(); + for ( var i = 0; i < _serializedVariables.Length; i++ ) { + var variable = JSONSerializer.Deserialize(_serializedVariables[i]._json, _serializedVariables[i]._references); + _blackboard.variables[variable.name] = variable; + } + } + } + + ///Serialize the blackboard to json with optional list to store object references within. Use this in runtime for blackboard save/load + public string Serialize(List references, bool pretyJson = false) { + return JSONSerializer.Serialize(typeof(BlackboardSource), _blackboard, references, pretyJson); + } + + ///Deserialize the blackboard from json with optional list of object references to read serializedreferences from. We deserialize ON TOP of existing variables so that external references to them stay intact. Use this in runtime for blackboard save/load + public bool Deserialize(string json, List references, bool removeMissingVariables = true) { + var deserializedBB = JSONSerializer.Deserialize(json, references); + if ( deserializedBB == null ) { return false; } + this.OverwriteFrom(deserializedBB, removeMissingVariables); + this.InitializePropertiesBinding(( (IBlackboard)this ).propertiesBindTarget, true); + return true; + } + + ///---------------------------------------------------------------------------------------------- + + public event System.Action onVariableAdded; + public event System.Action onVariableRemoved; + + string IBlackboard.identifier => _identifier; + Dictionary IBlackboard.variables { get { return _blackboard.variables; } set { _blackboard.variables = value; } } + Component IBlackboard.propertiesBindTarget => this; + UnityEngine.Object IBlackboard.unityContextObject => this; + IBlackboard IBlackboard.parent => _parentBlackboard; + string IBlackboard.independantVariablesFieldName => nameof(_serializedVariables); + + void IBlackboard.TryInvokeOnVariableAdded(Variable variable) { if ( onVariableAdded != null ) onVariableAdded(variable); } + void IBlackboard.TryInvokeOnVariableRemoved(Variable variable) { if ( onVariableRemoved != null ) onVariableRemoved(variable); } + + ///---------------------------------------------------------------------------------------------- + + //... + virtual protected void Awake() { + _identifier = gameObject.name; + this.InitializePropertiesBinding(( (IBlackboard)this ).propertiesBindTarget, false); + } + + ///---------------------------------------------------------------------------------------------- + + //These exist here only for backward compatibility in case ppl used these methods in any reflection + + ///Add a new variable of name and type + public Variable AddVariable(string name, System.Type type) { return IBlackboardExtensions.AddVariable(this, name, type); } + ///Add a new variable of name and value + public Variable AddVariable(string name, object value) { return IBlackboardExtensions.AddVariable(this, name, value); } + ///Delete the variable with specified name + public Variable RemoveVariable(string name) { return IBlackboardExtensions.RemoveVariable(this, name); } + ///Get a Variable of name and optionaly type + public Variable GetVariable(string name, System.Type ofType = null) { return IBlackboardExtensions.GetVariable(this, name, ofType); } + ///Get a Variable of ID and optionaly type + public Variable GetVariableByID(string ID) { return IBlackboardExtensions.GetVariableByID(this, ID); } + //Generic version of get variable + public Variable GetVariable(string name) { return IBlackboardExtensions.GetVariable(this, name); } + ///Get the variable value of name + public T GetVariableValue(string name) { return IBlackboardExtensions.GetVariableValue(this, name); } + ///Set the variable value of name + public Variable SetVariableValue(string name, object value) { return IBlackboardExtensions.SetVariableValue(this, name, value); } + + [System.Obsolete("Use GetVariableValue")] + public T GetValue(string name) { return GetVariableValue(name); } + [System.Obsolete("Use SetVariableValue")] + public Variable SetValue(string name, object value) { return SetVariableValue(name, value); } + + ///---------------------------------------------------------------------------------------------- + + [ContextMenu("Show Json")] + void ShowJson() { JSONSerializer.ShowData(_serializedBlackboard, this.name); } + + ///---------------------------------------------------------------------------------------------- + + ///Saves the Blackboard in PlayerPrefs with saveKey being it's name. You can use this for a Save system + public string Save() { return Save(this.name); } + ///Saves the Blackboard in PlayerPrefs in the provided saveKey. You can use this for a Save system + public string Save(string saveKey) { + var json = Serialize(null); + PlayerPrefs.SetString(saveKey, json); + return json; + } + + ///Loads back the Blackboard from PlayerPrefs saveKey same as it's name. You can use this for a Save system + public bool Load() { return Load(this.name); } + ///Loads back the Blackboard from PlayerPrefs of the provided saveKey. You can use this for a Save system + public bool Load(string saveKey) { + var json = PlayerPrefs.GetString(saveKey); + if ( string.IsNullOrEmpty(json) ) { + Debug.Log("No data to load blackboard variables from key " + saveKey); + return false; + } + return Deserialize(json, null, true); + } + + ///---------------------------------------------------------------------------------------------- + + virtual protected void OnValidate() { + _identifier = gameObject.name; + // if ( UnityEditor.PrefabUtility.IsPartOfPrefabInstance(this) ) { + // var serializedContext = new UnityEditor.SerializedObject(this); + // var variablesProperty = serializedContext.FindProperty(nameof(_serializedVariables)); + // var prefabAssetPath = UnityEditor.PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(this); + // var prefab = UnityEditor.AssetDatabase.LoadAssetAtPath(prefabAssetPath); + // for ( var i = 0; i < _serializedVariables.Length; i++ ) { + // if ( i >= prefab._serializedVariables.Length ) { break; } + // var varProp = variablesProperty.GetArrayElementAtIndex(i); + // var instVariable = JSONSerializer.Deserialize(_serializedVariables[i]._json); + // var prefVariable = JSONSerializer.Deserialize(prefab._serializedVariables[i]._json); + // } + // } + } + + public override string ToString() { return _identifier; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs.meta new file mode 100644 index 0000000..45317af --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Blackboard.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b98a6db0b653f764eac834f85857a9dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs new file mode 100644 index 0000000..1175421 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs @@ -0,0 +1,104 @@ +using System.Collections.Generic; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Framework +{ + + /// Global Blackboards are accessible from any BBParameter. + [ExecuteInEditMode] + public class GlobalBlackboard : Blackboard, IGlobalBlackboard + { + public enum SingletonMode + { + DestroyComponentOnly, + DestroyEntireGameObject + } + + [SerializeField] private string _UID = System.Guid.NewGuid().ToString(); + [Tooltip("A *unique* identifier of this Global Blackboard")] + [SerializeField] private string _identifier; + [Tooltip("If a duplicate with the same identifier is encountered, destroy the previous Global Blackboard component only, or the previous Global Blackboard gameobject entirely?")] + [SerializeField] private SingletonMode _singletonMode = SingletonMode.DestroyComponentOnly; + [Tooltip("If true, the Global Blackboard will not be destroyed when another scene is loaded.")] + [SerializeField] private bool _dontDestroyOnLoad = true; + + private static List _allGlobals = new List(); + + public string identifier => _identifier; + public string UID => _UID; + new public string name => identifier; + + ///---------------------------------------------------------------------------------------------- + + ///A collection of all the current active global blackboards in the scene + public static IEnumerable GetAll() { + return _allGlobals; + } + + ///Create a global blackboard + public static GlobalBlackboard Create() { + var bb = new GameObject("@GlobalBlackboard").AddComponent(); + bb._identifier = "Global"; + return bb; + } + + ///Get a global blackboard by it's name + public static GlobalBlackboard Find(string name) { + return _allGlobals.Find(b => b.identifier == name); + } + + //... + protected void OnEnable() { + if ( IsPrefabAsset() ) { return; } + if ( string.IsNullOrEmpty(_identifier) ) { _identifier = gameObject.name; } + if ( Application.isPlaying ) { + if ( Find(identifier) != null ) { + Logger.Log(string.Format("There exist more than one Global Blackboards with same identifier name '{0}'. The old one will now be destroyed.", identifier), LogTag.BLACKBOARD, this); + if ( _singletonMode == SingletonMode.DestroyComponentOnly ) { Destroy(this); } + if ( _singletonMode == SingletonMode.DestroyEntireGameObject ) { Destroy(this.gameObject); } + return; + } + if ( _dontDestroyOnLoad ) { DontDestroyOnLoad(this.gameObject); } + this.InitializePropertiesBinding(( (IBlackboard)this ).propertiesBindTarget, false); + } + if ( !_allGlobals.Contains(this) ) { _allGlobals.Add(this); } + } + + //... + protected void OnDisable() { + if ( IsPrefabAsset() ) { return; } + _allGlobals.Remove(this); + } + + //... + protected override void OnValidate() { + base.OnValidate(); + +#if UNITY_EDITOR + if ( UnityEditor.SceneManagement.PrefabStageUtility.GetCurrentPrefabStage() != null ) { return; } +#endif + + if ( Application.isPlaying || IsPrefabAsset() ) { return; } + if ( !_allGlobals.Contains(this) ) { _allGlobals.Add(this); } + if ( string.IsNullOrEmpty(_identifier) ) { _identifier = gameObject.name; } + var existing = Find(identifier); + if ( existing != this && existing != null ) { + Logger.LogError(string.Format("Another blackboard with the same identifier name '{0}' exists. Please rename either.", identifier), LogTag.BLACKBOARD, this); + } + } + + public override string ToString() { return identifier; } + + ///---------------------------------------------------------------------------------------------- + + //... + bool IsPrefabAsset() { +#if UNITY_EDITOR + return UnityEditor.EditorUtility.IsPersistent(this); +#else + return false; +#endif + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs.meta new file mode 100644 index 0000000..ec26e75 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/GlobalBlackboard.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5d4487f1cfc7d114e9eb271eace75d83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -80 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs new file mode 100644 index 0000000..aebce8c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace NodeCanvas.Framework +{ + + /// An interface for Blackboards + public interface IBlackboard + { + event System.Action onVariableAdded; + event System.Action onVariableRemoved; + + string identifier { get; } + IBlackboard parent { get; } + Dictionary variables { get; set; } + UnityEngine.Component propertiesBindTarget { get; } + UnityEngine.Object unityContextObject { get; } + string independantVariablesFieldName { get; } + + void TryInvokeOnVariableAdded(Variable variable); + void TryInvokeOnVariableRemoved(Variable variable); + } + + /// An interface for Global Blackboards + public interface IGlobalBlackboard : IBlackboard + { + string UID { get; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs.meta new file mode 100644 index 0000000..6e050bb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboard.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74ddcb8bc2a40d841aecfee894384aa3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs new file mode 100644 index 0000000..599067b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs @@ -0,0 +1,250 @@ +using System; +using System.Collections.Generic; +using ParadoxNotion; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Framework +{ + + ///Implementations for IBlackboards + [ParadoxNotion.Design.SpoofAOT] + public static class IBlackboardExtensions + { + + ///Returns the root blackboard upwards the hierarchy + public static IBlackboard GetRoot(this IBlackboard blackboard) { + if ( blackboard.parent == null ) { return blackboard; } + return blackboard.parent.GetRoot(); + } + + ///Returns all parent blackboard (optionaly including self) upwards + public static IEnumerable GetAllParents(this IBlackboard blackboard, bool includeSelf) { + if ( blackboard == null ) { yield break; } + if ( includeSelf ) { yield return blackboard; } + var current = blackboard.parent; + while ( current != null ) { + yield return current; + current = current.parent; + } + } + + ///Is the blackboard parent of the target child blackboard upward hierarchy or the target itself + public static bool IsPartOf(this IBlackboard blackboard, IBlackboard child) { + if ( blackboard == null || child == null ) { return false; } + if ( blackboard == child ) { return true; } + return blackboard.IsPartOf(child.parent); + } + + ///---------------------------------------------------------------------------------------------- + + ///Adds a new Variable with provided value and returns it. + public static Variable AddVariable(this IBlackboard blackboard, string varName, T value) { + var variable = blackboard.AddVariable(varName); + variable.value = value; + return variable; + } + + ///Adds a new Variable with default T value and returns it + public static Variable AddVariable(this IBlackboard blackboard, string varName) { + return (Variable)blackboard.AddVariable(varName, typeof(T)); + } + + ///Adds a new Variable in the blackboard + public static Variable AddVariable(this IBlackboard blackboard, string varName, object value) { + + if ( value == null ) { + Logger.LogError("You can't use AddVariable with a null value. Use AddVariable(string, Type) to add the new variable first", LogTag.BLACKBOARD, blackboard); + return null; + } + + var newVariable = blackboard.AddVariable(varName, value.GetType()); + if ( newVariable != null ) { + newVariable.value = value; + } + + return newVariable; + } + + ///Adds a new Variable in the blackboard defining name and type instead of value + public static Variable AddVariable(this IBlackboard blackboard, string varName, Type type) { + + if ( blackboard.variables.TryGetValue(varName, out Variable result) ) { + if ( result.CanConvertTo(type) ) { + Logger.Log(string.Format("Variable with name '{0}' already exists in blackboard '{1}'. Returning existing instead of new.", varName, blackboard), LogTag.BLACKBOARD, blackboard); + return result; + } else { + Logger.LogError(string.Format("Variable with name '{0}' already exists in blackboard '{1}', but is of a different type! Returning null instead of new.", varName, blackboard), LogTag.BLACKBOARD, blackboard); + return null; + } + } + + var variableType = typeof(Variable<>).RTMakeGenericType(new Type[] { type }); + var newVariable = (Variable)Activator.CreateInstance(variableType); + newVariable.name = varName; + blackboard.variables[varName] = newVariable; + blackboard.TryInvokeOnVariableAdded(newVariable); + return newVariable; + } + + ///Deletes the Variable of name provided regardless of type and returns the deleted Variable object. + public static Variable RemoveVariable(this IBlackboard blackboard, string varName) { + Variable variable = null; + if ( blackboard.variables.TryGetValue(varName, out variable) ) { + blackboard.variables.Remove(varName); + blackboard.TryInvokeOnVariableRemoved(variable); + variable.OnDestroy(); + } + return variable; + } + + ///---------------------------------------------------------------------------------------------- + + ///Gets the Variable value from the blackboard with provided name and type T. + public static T GetVariableValue(this IBlackboard blackboard, string varName) { + + var variable = GetVariable(blackboard, varName); + if ( variable == null ) { + Logger.LogError(string.Format("No Variable of name '{0}' and type '{1}' exists on Blackboard '{2}'. Returning default T...", varName, typeof(T).FriendlyName(), blackboard), LogTag.BLACKBOARD, blackboard); + return default(T); + } + + if ( variable is Variable ) { + return ( variable as Variable ).value; + } + + try { return (T)variable.value; } + catch { Logger.LogError(string.Format("Can't cast value of variable with name '{0}' to type '{1}'", varName, typeof(T).FriendlyName()), LogTag.BLACKBOARD, blackboard); } + return default(T); + } + + ///Set the value of the Variable value defined by its name. If a Variable by that name and type doesnt exist, a new variable is added by that name + public static Variable SetVariableValue(this IBlackboard blackboard, string varName, object value) { + + Variable variable; + if ( !blackboard.variables.TryGetValue(varName, out variable) ) { + Logger.Log(string.Format("No Variable of name '{0}' and type '{1}' exists on Blackboard '{2}'. Adding new instead...", varName, value != null ? value.GetType().FriendlyName() : "null", blackboard), LogTag.BLACKBOARD, blackboard); + variable = blackboard.AddVariable(varName, value); + return variable; + } + + try { variable.value = value; } + catch { + Logger.LogError(string.Format("Can't cast value '{0}' to blackboard variable of name '{1}' and type '{2}'", value != null ? value.ToString() : "null", varName, variable.varType.FriendlyName()), LogTag.BLACKBOARD, blackboard); + return null; + } + + return variable; + } + + ///---------------------------------------------------------------------------------------------- + + ///Initialize Variables data binding for the target (gameobject is used). target ignored for static bindings + public static void InitializePropertiesBinding(this IBlackboard blackboard, Component target, bool callSetter) { + if ( blackboard.variables.Count == 0 ) { return; } + foreach ( var variable in blackboard.variables.Values ) { + variable.InitializePropertyBinding(target?.gameObject, callSetter); + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Generic version of GetVariable. Includes parent blackboards upwards the hierarchy. + public static Variable GetVariable(this IBlackboard blackboard, string varName) { + return (Variable)blackboard.GetVariable(varName, typeof(T)); + } + + ///Gets the Variable object of a certain name and optional specified assignable type. Includes parent blackboards upwards the hierarchy. + public static Variable GetVariable(this IBlackboard blackboard, string varName, Type ofType = null) { + + if ( blackboard.variables != null && varName != null ) { + Variable variable; + if ( blackboard.variables.TryGetValue(varName, out variable) ) { + if ( ofType == null || ofType == typeof(object) || variable.CanConvertTo(ofType) ) { + return variable; + } + } + } + + if ( blackboard.parent != null ) { + var result = blackboard.parent.GetVariable(varName, ofType); + if ( result != null ) { return result; } + } + + return null; + } + + ///Gets the Variable object of a certain ID. Includes parent blackboards upwards the hierarchy. + public static Variable GetVariableByID(this IBlackboard blackboard, string ID) { + + if ( blackboard.variables != null && ID != null ) { + foreach ( var pair in blackboard.variables ) { + if ( pair.Value.ID == ID ) { return pair.Value; } + } + } + + if ( blackboard.parent != null ) { + var result = blackboard.parent.GetVariableByID(ID); + if ( result != null ) { return result; } + } + + return null; + } + + ///Get all variables. Includes parent blackboards upwards the hierarchy. + public static IEnumerable GetVariables(this IBlackboard blackboard, Type ofType = null) { + + if ( blackboard.parent != null ) { + foreach ( var subVariable in blackboard.parent.GetVariables(ofType) ) { + yield return subVariable; + } + } + + foreach ( var pair in blackboard.variables ) { + if ( ofType == null || ofType == typeof(object) || pair.Value.CanConvertTo(ofType) ) { + yield return pair.Value; + } + } + } + + ///---------------------------------------------------------------------------------------------- + + ///Change variable type (creates new instance but keeps name and ID) + public static Variable ChangeVariableType(this IBlackboard blackboard, Variable target, Type newType) { + var name = target.name; + var id = target.ID; + blackboard.RemoveVariable(target.name); + //do this way instead of AddVariable to keep the same name and id + var variableType = typeof(Variable<>).RTMakeGenericType(new Type[] { newType }); + var newVariable = (Variable)Activator.CreateInstance(variableType, new object[] { name, id }); + blackboard.variables[target.name] = newVariable; + blackboard.TryInvokeOnVariableAdded(newVariable); + return newVariable; + } + + ///---------------------------------------------------------------------------------------------- + + ///Overwrite variables from source blackboard into this blackboard + public static void OverwriteFrom(this IBlackboard blackboard, IBlackboard sourceBlackboard, bool removeMissingVariables = true) { + foreach ( var pair in sourceBlackboard.variables ) { + if ( blackboard.variables.ContainsKey(pair.Key) ) { + blackboard.SetVariableValue(pair.Key, pair.Value.value); + } else { + blackboard.variables[pair.Key] = pair.Value; + } + } + + if ( removeMissingVariables ) { + var keys = new List(blackboard.variables.Keys); + foreach ( string key in keys ) { + if ( !sourceBlackboard.variables.ContainsKey(key) ) { + blackboard.variables.Remove(key); + } + } + } + } + + ///---------------------------------------------------------------------------------------------- + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs.meta new file mode 100644 index 0000000..73d88ef --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/IBlackboardExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09694dc1e089db7418ca227a4a4404ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal.meta new file mode 100644 index 0000000..6cec038 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e914d8ccc7311dc48852e89fccc15bff +folderAsset: yes +timeCreated: 1426868285 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs new file mode 100644 index 0000000..2172d4c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs @@ -0,0 +1,23 @@ +using System; + +namespace NodeCanvas.Framework.Internal +{ + ///Used to map subgraph variables <-> parent variables (or direct value) + [Serializable] + public class BBMappingParameter : BBObjectParameter + { + [UnityEngine.SerializeField] private string _targetSubGraphVariableID; + [UnityEngine.SerializeField] private bool _canRead; + [UnityEngine.SerializeField] private bool _canWrite; + + public string targetSubGraphVariableID => _targetSubGraphVariableID; + public bool canRead { get { return _canRead; } set { _canRead = value; } } + public bool canWrite { get { return _canWrite; } set { _canWrite = value; } } + + public BBMappingParameter() : base() { } + public BBMappingParameter(Variable subVariable) { + _targetSubGraphVariableID = subVariable.ID; + base.SetType(subVariable.varType); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs.meta new file mode 100644 index 0000000..492206e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBMappingParameter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c34a111defd7d148a30ed8a396c5c26 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs new file mode 100644 index 0000000..3cbbec1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs @@ -0,0 +1,47 @@ +using System; +using UnityEngine; +using ParadoxNotion; + +namespace NodeCanvas.Framework.Internal +{ + + ///Can be set to any type in case type is unknown. + [Serializable] + public class BBObjectParameter : BBParameter, ISerializationCallbackReceiver + { + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + if ( type != null ) { _type = type.FullName; } + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + type = ReflectionTools.GetType(_type, /*fallback?*/ true); + } + + [SerializeField] + private string _type; + + private Type type { get; set; } + + public override Type varType => type != null ? type : typeof(object); + + public BBObjectParameter() { SetType(typeof(object)); } + public BBObjectParameter(Type t) { SetType(t); } + public BBObjectParameter(BBParameter source) { + if ( source != null ) { + type = source.varType; + _value = source.value; + name = source.name; + targetVariableID = source.targetVariableID; + } + } + + public void SetType(Type t) { + if ( t == null ) { t = typeof(object); } + if ( t != type || ( t.RTIsValueType() && _value == null ) ) { + _value = t.RTIsValueType() ? Activator.CreateInstance(t) : null; + } + type = t; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs.meta new file mode 100644 index 0000000..85c203a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BBObjectParameter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68706ed7d53135b4196b0757cad1a1d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs new file mode 100644 index 0000000..40e4605 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace NodeCanvas.Framework.Internal +{ + + /// Blackboard holds Variable and is able to save and load itself. It's usefull for interop communication within the program, saving and loading systems etc. This is the main implementation class of IBlackboard and the one being serialized. + [Serializable] + public class BlackboardSource : IBlackboard + { + + [SerializeField] private Dictionary _variables = new Dictionary(StringComparer.Ordinal); + + public event System.Action onVariableAdded; + public event System.Action onVariableRemoved; + + public string identifier => "Graph"; + public Dictionary variables { get { return _variables; } set { _variables = value; } } + public IBlackboard parent { get; set; } + public UnityEngine.Object unityContextObject { get; set; } + public Component propertiesBindTarget { get; set; } + string IBlackboard.independantVariablesFieldName => null; + + void IBlackboard.TryInvokeOnVariableAdded(Variable variable) { if ( onVariableAdded != null ) onVariableAdded(variable); } + void IBlackboard.TryInvokeOnVariableRemoved(Variable variable) { if ( onVariableRemoved != null ) onVariableRemoved(variable); } + + //required + public BlackboardSource() { } + + public override string ToString() { return identifier; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs.meta new file mode 100644 index 0000000..0a4ff3c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/BlackboardSource.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 643071718799fd84da127056bf3a3c37 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs new file mode 100644 index 0000000..18b6004 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs @@ -0,0 +1,24 @@ +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework.Internal +{ + + public class MissingBBParameterType : BBParameter, IMissingRecoverable + { + + [UnityEngine.SerializeField] + private string _missingType; + [UnityEngine.SerializeField] + private string _recoveryState; + + string IMissingRecoverable.missingType { + get { return _missingType; } + set { _missingType = value; } + } + + string IMissingRecoverable.recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs.meta new file mode 100644 index 0000000..246d6d4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingBBParameterType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: de27e3d9cb287394f848fa3eeaa7e688 +timeCreated: 1438618128 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs new file mode 100644 index 0000000..ca34177 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs @@ -0,0 +1,24 @@ +using ParadoxNotion.Serialization; + +namespace NodeCanvas.Framework.Internal +{ + + public class MissingVariableType : Variable, IMissingRecoverable + { + + [UnityEngine.SerializeField] + private string _missingType; + [UnityEngine.SerializeField] + private string _recoveryState; + + public string missingType { + get { return _missingType; } + set { _missingType = value; } + } + + public string recoveryState { + get { return _recoveryState; } + set { _recoveryState = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs.meta new file mode 100644 index 0000000..1f8ed12 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/MissingVariableType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a269254a262bdc44fa7038a63cafabb9 +timeCreated: 1438618128 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs new file mode 100644 index 0000000..f1a55c0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs @@ -0,0 +1,45 @@ +using System; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; + +namespace NodeCanvas.Framework.Internal +{ + + ///Extended functionality for BBParameters, so that changing a serialized type T, to BBParameter, retains the original serialization. As such "upgrading" a normal T to BBParameter impose no problems. + public class fsBBParameterProcessor : fsRecoveryProcessor + { + //... + public override void OnBeforeDeserializeAfterInstanceCreation(Type storageType, object instance, ref fsData data) { + + if ( ParadoxNotion.Services.Threader.applicationIsPlaying ) { + return; + } + + //Check if the previous state is already an object and whether it's empty (default values), or it contains certain BBParameter fields. + //This way avoid extra work if previous state is already a BBParameter. + //There is no other way to find out if the previous state is BBParameter or not. It's no bullet proof, but not harmfull anyway. + if ( data.IsDictionary ) { + var dict = data.AsDictionary; + if ( dict.Count == 0 || dict.ContainsKey("_value") || dict.ContainsKey("_name") ) { + return; + } + } + + var bbParam = instance as BBParameter; + if ( bbParam != null && bbParam.GetType().RTIsGenericType() ) { + var varType = bbParam.varType; + var serializer = new fsSerializer(); + object prevInstance = null; + //try deserialize previous json state to current BBParameter T type. + if ( serializer.TryDeserialize(data, varType, ref prevInstance).Succeeded ) { + //if success and assignalbes, set the BBParameter instance value and serialize back again. + if ( prevInstance != null && varType.RTIsAssignableFrom(prevInstance.GetType()) ) { + bbParam.value = prevInstance; + serializer.TrySerialize(storageType, instance, out data); + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs.meta new file mode 100644 index 0000000..189bf66 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Internal/fsBBParameterProcessor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06577ee7a45212744a32fdb6920795b0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs new file mode 100644 index 0000000..4beaf33 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs @@ -0,0 +1,215 @@ +#if !UNITY_2018_3_OR_NEWER + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.Networking.NetworkSystem; +using ParadoxNotion; + +namespace NodeCanvas.Framework +{ + + [RequireComponent(typeof(Blackboard))] + public class SyncBlackboard : NetworkBehaviour + { + + class SyncVarMessage : MessageBase + { + + public string name; + public object value; + + public SyncVarMessage() { } + public SyncVarMessage(string name, object value) { + this.name = name; + this.value = value; + } + + public override void Serialize(NetworkWriter writer) { + + writer.Write(name); + + var isNull = value == null; + writer.Write(isNull); + if ( isNull ) { + return; + } + + var typeName = value.GetType().AssemblyQualifiedName; + var t = System.Type.GetType(typeName); + writer.Write((string)typeName); + + if ( t == typeof(string) ) { + writer.Write((string)value); + return; + } + if ( t == typeof(bool) ) { + writer.Write((bool)value); + return; + } + if ( t == typeof(int) ) { + writer.Write((int)value); + return; + } + if ( t == typeof(float) ) { + writer.Write((float)value); + return; + } + if ( t == typeof(Color) ) { + writer.Write((Color)value); + return; + } + if ( t == typeof(Vector2) ) { + writer.Write((Vector2)value); + return; + } + if ( t == typeof(Vector3) ) { + writer.Write((Vector3)value); + return; + } + if ( t == typeof(Vector4) ) { + writer.Write((Vector4)value); + return; + } + if ( t == typeof(Quaternion) ) { + writer.Write((Quaternion)value); + return; + } + if ( t == typeof(GameObject) ) { + writer.Write((GameObject)value); + return; + } + if ( typeof(Component).RTIsAssignableFrom(t) ) { + writer.Write((GameObject)value); + return; + } + } + + + public override void Deserialize(NetworkReader reader) { + + name = reader.ReadString(); + + var isNull = reader.ReadBoolean(); + if ( isNull ) { + value = null; + return; + } + + var typeName = reader.ReadString(); + var t = System.Type.GetType(typeName); + + if ( t == typeof(string) ) { + value = reader.ReadString(); + return; + } + if ( t == typeof(bool) ) { + value = reader.ReadBoolean(); + return; + } + if ( t == typeof(int) ) { + value = reader.ReadInt32(); + return; + } + if ( t == typeof(float) ) { + value = reader.ReadSingle(); + return; + } + if ( t == typeof(Color) ) { + value = reader.ReadColor(); + return; + } + if ( t == typeof(Vector2) ) { + value = reader.ReadVector2(); + return; + } + if ( t == typeof(Vector3) ) { + value = reader.ReadVector3(); + return; + } + if ( t == typeof(Vector4) ) { + value = reader.ReadVector4(); + return; + } + if ( t == typeof(Quaternion) ) { + value = reader.ReadQuaternion(); + return; + } + if ( t == typeof(GameObject) ) { + value = reader.ReadGameObject(); + return; + } + if ( typeof(Component).RTIsAssignableFrom(t) ) { + var go = reader.ReadGameObject(); + if ( go != null ) { + value = go.GetComponent(t); + } + return; + } + } + } + + ///---------------------------------------------------------------------------------------------- + + private const short VALUE_CHANGE = 1000; + private const short REFRESH_VALUES = 1001; + private List waitResponseNames = new List(); + + public override void OnStartServer() { + NetworkServer.RegisterHandler(VALUE_CHANGE, SyncValue); + NetworkServer.RegisterHandler(REFRESH_VALUES, RefreshValues); + } + + public override void OnStartClient() { + + if ( !isServer ) { + NetworkManager.singleton.client.RegisterHandler(VALUE_CHANGE, SyncValue); + var connectionID = NetworkManager.singleton.client.connection.connectionId; + NetworkManager.singleton.client.Send(REFRESH_VALUES, new IntegerMessage(connectionID)); + } + + var bb = GetComponent(); + foreach ( var variable in bb.variables.Values ) { + if ( variable.isPublic ) { + variable.onValueChanged += (object newValue)=>{ OnValueChange(variable.name, newValue); }; + } + } + } + + void OnValueChange(string name, object value) { + + if ( waitResponseNames.Contains(name) ) { + return; + } + + waitResponseNames.Add(name); + + if ( isServer ) { + Debug.Log("Value Changed on Server: " + name); + NetworkServer.SendToReady(gameObject, VALUE_CHANGE, new SyncVarMessage(name, value)); + } else { + Debug.Log("Value Changed on Client: " + name); + NetworkManager.singleton.client.Send(VALUE_CHANGE, new SyncVarMessage(name, value)); + } + } + + void RefreshValues(NetworkMessage msg) { + var id = msg.ReadMessage().value; + var bb = GetComponent(); + foreach ( var variable in bb.variables.Values ) { + NetworkServer.SendToClient(id, VALUE_CHANGE, new SyncVarMessage(variable.name, variable.value)); + } + } + + void SyncValue(NetworkMessage msg) { + var m = msg.ReadMessage(); + var name = m.name; + var value = m.value; + var bb = GetComponent(); + bb.SetValue(name, value); + waitResponseNames.Remove(name); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs.meta new file mode 100644 index 0000000..f60c8a0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/SyncBlackboard.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d319a54c00fe7f14bbb847268182a70d +timeCreated: 1438185782 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs new file mode 100644 index 0000000..a054c73 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs @@ -0,0 +1,292 @@ +using System; +using System.Reflection; +using ParadoxNotion; +using ParadoxNotion.Serialization; +using ParadoxNotion.Serialization.FullSerializer; +using NodeCanvas.Framework.Internal; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.Framework +{ + +#if UNITY_EDITOR //handles missing variable types + [fsObject(Processor = typeof(fsRecoveryProcessor))] +#endif + + [Serializable, fsUninitialized] + [ParadoxNotion.Design.SpoofAOT] + ///Variables are stored in Blackboards and can optionaly be bound to Properties or Fields of a Unity Component + abstract public class Variable + { + + [SerializeField] private string _name; + [SerializeField] private string _id; + [SerializeField] private bool _isPublic; + [SerializeField, fsIgnoreInBuild] private bool _debugBoundValue; + + ///Raised when name change + public event Action onNameChanged; + ///Raised when value change + public event Action onValueChanged; + ///Raised when variable is destroyed/removed from blackboard + public event Action onDestroy; + + ///The name of the variable + public string name { + get { return _name; } + set + { + if ( _name != value ) { + _name = value; + if ( onNameChanged != null ) { + onNameChanged(value); + } + } + } + } + + ///A Unique ID + public string ID { get { return string.IsNullOrEmpty(_id) ? _id = Guid.NewGuid().ToString() : _id; } } + ///The value as object type when accessing from base class + public object value { get { return GetValueBoxed(); } set { SetValueBoxed(value); } } + ///Is the variable exposed public? + public bool isExposedPublic { get { return _isPublic && !isPropertyBound; } set { _isPublic = value; } } + ///For debugging data bound value in inspector (editor only) + public bool debugBoundValue { get { return _debugBoundValue; } set { _debugBoundValue = value; } } + ///Is the variable bound to a property/field? + public bool isPropertyBound => !string.IsNullOrEmpty(propertyPath); + + ///Is the variable data bound now? + abstract public bool isDataBound { get; } + ///The Type this Variable holds + abstract public Type varType { get; } + ///The path to the property this data is binded to. Null if none + abstract public string propertyPath { get; set; } + + ///---------------------------------------------------------------------------------------------- + + ///Used to bind variable to a property + abstract public void BindProperty(MemberInfo prop, GameObject target = null); + ///Used to un-bind variable from a property + abstract public void UnBind(); + ///Called from Blackboard in Awake to Initialize the binding on specified game object + abstract public void InitializePropertyBinding(GameObject go, bool callSetter = false); + ///Same as .value. Used for binding. + abstract public object GetValueBoxed(); + ///Same as .value. Used for binding. + abstract public void SetValueBoxed(object value); + ///---------------------------------------------------------------------------------------------- + + //required + public Variable() { _id = Guid.NewGuid().ToString(); } + public Variable(string name, string ID) { _name = name; _id = ID; } + + //... + internal void OnDestroy() { if ( onDestroy != null ) { onDestroy(); } } + + ///Duplicate this Variable into target Blackboard + public Variable Duplicate(IBlackboard targetBB) { + var finalName = this.name; + while ( targetBB.variables.ContainsKey(finalName) ) { + finalName += "."; + } + var newVar = targetBB.AddVariable(finalName, varType); + if ( newVar != null ) { + newVar.value = this.value; + newVar.propertyPath = this.propertyPath; + newVar.isExposedPublic = this.isExposedPublic; + } + return newVar; + } + + //we need this since onValueChanged is an event and we can't check != null outside of this class + protected bool HasValueChangeEvent() { return onValueChanged != null; } + //invoke value changed event + protected void TryInvokeValueChangeEvent(object value) { if ( onValueChanged != null ) { onValueChanged(value); } } + + ///Checks whether a convertion to type is possible + public bool CanConvertTo(Type toType) { return GetGetConverter(toType) != null; } + ///Gets a Func that converts the value ToType if possible. Null if not. + public Func GetGetConverter(Type toType) { + + if ( toType.RTIsAssignableFrom(varType) ) { + return () => value; + } + + var converter = TypeConverter.Get(varType, toType); + if ( converter != null ) { + return () => converter(value); + } + + return null; + } + + ///Checks whether a convertion from type is possible + public bool CanConvertFrom(Type fromType) { return GetSetConverter(fromType) != null; } + ///Gets an Action that converts the value fromType if possible. Null if not. + public Action GetSetConverter(Type fromType) { + + if ( varType.RTIsAssignableFrom(fromType) ) { + return (x) => value = x; + } + + var converter = TypeConverter.Get(fromType, varType); + if ( converter != null ) { + return (x) => value = converter(x); + } + + return null; + } + + //... + public override string ToString() { return name; } + } + + ///---------------------------------------------------------------------------------------------- + + ///The actual Variable + public class Variable : Variable + { + + [SerializeField] private T _value; + [SerializeField] private string _propertyPath; + + //delegates for binding + private event Func getter; + private event Action setter; + // + + public override Type varType => typeof(T); + public override bool isDataBound => getter != null || setter != null; + public override string propertyPath { get { return _propertyPath; } set { _propertyPath = value; } } + + ///The value as type T when accessing as this type + new public T value { + get { return getter != null ? getter() : _value; } + set + { + if ( base.HasValueChangeEvent() ) { //check this first to avoid unescessary value boxing + var boxed = (object)value; + if ( !ObjectUtils.AnyEquals(_value, boxed) ) { + this._value = value; + if ( setter != null ) { setter(value); } + base.TryInvokeValueChangeEvent(boxed); + } + return; + } + + this._value = value; + if ( setter != null ) { setter(value); } + } + } + + ///---------------------------------------------------------------------------------------------- + + //required + public Variable() { } + public Variable(string name, string ID) : base(name, ID) { } + + ///Same as .value. Used for binding. + public override object GetValueBoxed() { return value; } + ///Same as .value. Used for binding. + public override void SetValueBoxed(object newValue) { this.value = (T)newValue; } + ///Same as .value. Used for binding. + public T GetValue() { return value; } + ///Same as .value. Used for binding. + public void SetValue(T newValue) { this.value = newValue; } + + ///Set the property binding. Providing target also initializes the property binding + public override void BindProperty(MemberInfo prop, GameObject target = null) { + if ( prop is PropertyInfo || prop is FieldInfo ) { + _propertyPath = string.Format("{0}.{1}", prop.RTReflectedOrDeclaredType().FullName, prop.Name); + if ( target != null ) { InitializePropertyBinding(target, false); } + } + } + + ///Bind getter and setter directly + public void BindGetSet(Func _get, Action _set) { + this.getter = _get; + this.setter = _set; + } + + ///Removes the property and data binding + public override void UnBind() { + _propertyPath = null; + getter = null; + setter = null; + } + + ///Initialize the property binding for target gameobject. The gameobject is only used in case the binding is not static. + public override void InitializePropertyBinding(GameObject go, bool callSetter = false) { + + if ( !isPropertyBound || !ParadoxNotion.Services.Threader.applicationIsPlaying ) { + return; + } + + getter = null; + setter = null; + + var idx = _propertyPath.LastIndexOf('.'); + var typeString = _propertyPath.Substring(0, idx); + var memberString = _propertyPath.Substring(idx + 1); + var type = ReflectionTools.GetType(typeString, /*fallback?*/ true, typeof(Component)); + + if ( type == null ) { + Logger.LogError(string.Format("Type '{0}' not found for Blackboard Variable '{1}' Binding.", typeString, name), LogTag.VARIABLE, go); + return; + } + + var member = type.RTGetFieldOrProp(memberString); + + if ( member is FieldInfo ) { + var field = (FieldInfo)member; + var instance = field.IsStatic ? null : go.GetComponent(type); + if ( instance == null && !field.IsStatic ) { + Logger.LogError(string.Format("A Blackboard Variable '{0}' is due to bind to a Component type that is missing '{1}'. Binding ignored", name, typeString), LogTag.VARIABLE, go); + return; + } + if ( field.IsConstant() ) { + T value = (T)field.GetValue(instance); + getter = () => { return value; }; + } else { + getter = () => { return (T)field.GetValue(instance); }; + setter = (o) => { field.SetValue(instance, o); }; + } + + return; + } + + if ( member is PropertyInfo ) { + var prop = (PropertyInfo)member; + var getMethod = prop.RTGetGetMethod(); + var setMethod = prop.RTGetSetMethod(); + var isStatic = ( getMethod != null && getMethod.IsStatic ) || ( setMethod != null && setMethod.IsStatic ); + var instance = isStatic ? null : go.GetComponent(type); + if ( instance == null && !isStatic ) { + Logger.LogError(string.Format("A Blackboard Variable '{0}' is due to bind to a Component type that is missing '{1}'. Binding ignored.", name, typeString), LogTag.VARIABLE, go); + return; + } + + if ( prop.CanRead && getMethod != null ) { + try { getter = getMethod.RTCreateDelegate>(instance); } //JIT + catch { getter = () => { return (T)getMethod.Invoke(instance, null); }; } //AOT + } else { + getter = () => { Logger.LogError(string.Format("You tried to Get a Property Bound Variable '{0}', but the Bound Property '{1}' is Write Only!", name, _propertyPath), LogTag.VARIABLE, go); return default(T); }; + } + + if ( prop.CanWrite && setMethod != null ) { + try { setter = setMethod.RTCreateDelegate>(instance); } //JIT + catch { setter = (o) => { setMethod.Invoke(instance, ReflectionTools.SingleTempArgsArray(o)); }; } //AOT + if ( callSetter ) { setter(_value); } + } else { + setter = (o) => { Logger.LogError(string.Format("You tried to Set a Property Bound Variable '{0}', but the Bound Property '{1}' is Read Only!", name, _propertyPath), LogTag.VARIABLE, go); }; + } + + return; + } + + Logger.LogError(string.Format("A Blackboard Variable '{0}' is due to bind to a property/field named '{1}' that does not exist on type '{2}'. Binding ignored", name, memberString, type.FullName), LogTag.VARIABLE, go); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs.meta new file mode 100644 index 0000000..b92aec8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/Variable.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ddacaeaa9ce60634ab9efdd51ce1e421 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs new file mode 100644 index 0000000..49a9b27 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs @@ -0,0 +1,9 @@ +namespace NodeCanvas.Framework +{ + ///This is a very special dummy class for variable header separators + public class VariableSeperator + { + public VariableSeperator() { } + public bool isEditingName { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs.meta new file mode 100644 index 0000000..7ab3675 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Framework/Runtime/Variables/VariableSeparator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6df3db77f51082340a2c81202565cca1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef b/Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef new file mode 100644 index 0000000..d1c46bd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef @@ -0,0 +1,3 @@ +{ + "name": "ParadoxNotion" +} diff --git a/Assets/AddressableAssetsData/WebGL/addressables_content_state.bin.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef.meta similarity index 59% rename from Assets/AddressableAssetsData/WebGL/addressables_content_state.bin.meta rename to Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef.meta index 874f0f9..be9789b 100644 --- a/Assets/AddressableAssetsData/WebGL/addressables_content_state.bin.meta +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/ParadoxNotion.asmdef.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 811f63196ce8b09489df731fc09ba176 -DefaultImporter: +guid: 66c2eb417c67ad849907d0769db96dbf +AssemblyDefinitionImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas.meta new file mode 100644 index 0000000..daaa4e6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ea23bacb128cf2c49b9cac335109b1e0 +folderAsset: yes +timeCreated: 1538667928 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor.meta new file mode 100644 index 0000000..7180c3c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 21af63cb2c48a3b4f829ae3b353031b9 +folderAsset: yes +timeCreated: 1538758966 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs new file mode 100644 index 0000000..3213800 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs @@ -0,0 +1,79 @@ +#if UNITY_EDITOR + +using UnityEditor; +using ParadoxNotion.Design; +using NodeCanvas.Framework; + +namespace NodeCanvas.Editor +{ + + public static class Commands + { + + ///---------------------------------------------------------------------------------------------- + + [UnityEditor.InitializeOnLoadMethod] + public static void SetNodeCanvasDefine() { + DefinesManager.SetDefineActiveForCurrentTargetGroup("NODECANVAS", true); + } + + ///---------------------------------------------------------------------------------------------- + + [MenuItem("Assets/Create/ParadoxNotion/NodeCanvas/New Task")] + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Create/New Task", false, 90)] + public static void ShowTaskWizard() { + TaskWizardWindow.ShowWindow(); + } + + ///---------------------------------------------------------------------------------------------- + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Create/Global Scene Blackboard", false, 10)] + public static void CreateGlobalSceneBlackboard() { + Selection.activeObject = GlobalBlackboard.Create(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Preferred Types Editor")] + public static void ShowPrefTypes() { + TypePrefsEditorWindow.ShowWindow(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Graph Console")] + public static void OpenConsole() { + GraphConsole.ShowWindow(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Graph Explorer")] + public static void OpenExplorer() { + GraphExplorer.ShowWindow(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Graph Refactor")] + public static void OpenRefactor() { + GraphRefactor.ShowWindow(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Active Owners Overview")] + public static void OpenOwnersOverview() { + ActiveOwnersOverview.ShowWindow(); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/External Inspector Panel")] + public static void ShowExternalInspector() { + ExternalInspectorWindow.ShowWindow(); + } + + ///---------------------------------------------------------------------------------------------- + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Welcome Window")] + public static void ShowWelcome() { + WelcomeWindow.ShowWindow(typeof(NodeCanvas.BehaviourTrees.BehaviourTree)); + } + + [MenuItem("Tools/ParadoxNotion/NodeCanvas/Website...")] + public static void VisitWebsite() { + Help.BrowseURL("https://nodecanvas.paradoxnotion.com"); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs.meta new file mode 100644 index 0000000..a409fa1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Commands.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 97bfc0240961cfa46965bb2a0b5cd48c +timeCreated: 1462124021 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers.meta new file mode 100644 index 0000000..a6ffd88 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83195f27791c80849984b2dfe458acea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs new file mode 100644 index 0000000..a9dfd3c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs @@ -0,0 +1,23 @@ +#if UNITY_EDITOR + +using ParadoxNotion.Design; +using UnityEngine; +using NodeCanvas.DialogueTrees; + +namespace NodeCanvas.Editor +{ + + ///A drawer for dialogue tree statements + public class StatementDrawer : ObjectDrawer + { + public override Statement OnGUI(GUIContent content, Statement instance) { + if ( instance == null ) { instance = new Statement("..."); } + instance.text = UnityEditor.EditorGUILayout.TextArea(instance.text, Styles.wrapTextArea, GUILayout.Height(100)); + instance.audio = UnityEditor.EditorGUILayout.ObjectField("Audio File", instance.audio, typeof(AudioClip), false) as AudioClip; + instance.meta = UnityEditor.EditorGUILayout.TextField("Metadata", instance.meta); + return instance; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs.meta new file mode 100644 index 0000000..9a7cf72 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Drawers/StatementDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0bfe262bb61820c468a50914a8a115fa +timeCreated: 1514571230 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors.meta new file mode 100644 index 0000000..b6ad9d1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 03b4f67804ea6004ca5a0d6d3c2fa242 +folderAsset: yes +timeCreated: 1538791284 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs new file mode 100644 index 0000000..fc03bae --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs @@ -0,0 +1,36 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; +using NodeCanvas.Framework; +using ParadoxNotion.Design; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(ActionListPlayer))] + public class ActionListPlayerInspector : UnityEditor.Editor + { + + private ActionListPlayer list { + get { return (ActionListPlayer)target; } + } + + public override void OnInspectorGUI() { + + GUI.skin.label.richText = true; + GUILayout.Space(10); + + list.playOnAwake = EditorGUILayout.Toggle("Play On Awake", list.playOnAwake); + list.blackboard = (Blackboard)EditorGUILayout.ObjectField("Target Blackboard", (Blackboard)list.blackboard, typeof(Blackboard), true); + TaskEditor.TaskFieldSingle(list.actionList, null, false); + EditorUtils.EndOfInspector(); + + if ( Event.current.isMouse || list.actionList.isRunning ) { + Repaint(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs.meta new file mode 100644 index 0000000..9b29c24 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/ActionListPlayerInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fbf729746d7bc944680ce1f47ea78b92 +timeCreated: 1435079900 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs new file mode 100644 index 0000000..a841c78 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs @@ -0,0 +1,31 @@ +#if UNITY_EDITOR + +using NodeCanvas.BehaviourTrees; +using ParadoxNotion; +using UnityEditor; +using UnityEngine; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(BehaviourTreeOwner))] + public class BehaviourTreeOwnerInspector : GraphOwnerInspector + { + + private BehaviourTreeOwner owner { + get { return target as BehaviourTreeOwner; } + } + + protected override void OnPreExtraGraphOptions() { + ParadoxNotion.Design.EditorUtils.Separator(); + owner.repeat = EditorGUILayout.Toggle("Repeat", owner.repeat); + if ( owner.repeat ) { + GUI.color = Color.white.WithAlpha(owner.updateInterval > 0 ? 1 : 0.5f); + owner.updateInterval = EditorGUILayout.FloatField("Update Interval", owner.updateInterval); + GUI.color = Color.white; + } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs.meta new file mode 100644 index 0000000..1ea3755 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/BehaviourTreeOwnerInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c0a6b566c1d2e24eab536c326773e7d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs new file mode 100644 index 0000000..80abbbf --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs @@ -0,0 +1,23 @@ +#if UNITY_EDITOR + +using NodeCanvas.DialogueTrees; +using UnityEditor; + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(DialogueTreeController))] + public class DialogueTreeControllerInspector : GraphOwnerInspector + { + + private DialogueTreeController controller { + get { return target as DialogueTreeController; } + } + + protected override void OnPostExtraGraphOptions() { + if ( controller.graph != null ) { DialogueTreeInspector.ShowActorParameters((DialogueTree)controller.graph); } + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs.meta new file mode 100644 index 0000000..42b35cb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeControllerInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7500d819cd85a144097dbf09c905400c +timeCreated: 1478952843 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs new file mode 100644 index 0000000..88d2be7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs @@ -0,0 +1,84 @@ +#if UNITY_EDITOR + +using System.Linq; +using NodeCanvas.DialogueTrees; +using ParadoxNotion.Design; +using UnityEditor; +using UnityEngine; + + +namespace NodeCanvas.Editor +{ + + [CustomEditor(typeof(DialogueTree))] + public class DialogueTreeInspector : GraphInspector + { + + private DialogueTree dialogue { + get { return target as DialogueTree; } + } + + public override void OnInspectorGUI() { + base.OnInspectorGUI(); + ShowActorParameters(dialogue); + EditorUtils.EndOfInspector(); + if ( GUI.changed ) { UndoUtility.SetDirty(dialogue); } + } + + //static because it's also used from DialogueTreeController + public static void ShowActorParameters(DialogueTree dialogue) { + EditorUtils.CoolLabel("Dialogue Actor Parameters"); + EditorGUILayout.HelpBox("Enter the Key-Value pair for Dialogue Actors involved in the Dialogue.\nThe reference Object must be an IDialogueActor or have an IDialogueActor component.\nReferencing a Dialogue Actor is optional.", MessageType.Info); + + GUILayout.BeginVertical(GUI.skin.box); + + if ( GUILayout.Button("Add Actor Parameter") ) { + UndoUtility.RecordObject(dialogue, "New Actor Parameter"); + dialogue.actorParameters.Add(new DialogueTree.ActorParameter("actor parameter name")); + UndoUtility.SetDirty(dialogue); + } + + EditorGUILayout.LabelField(DialogueTree.INSTIGATOR_NAME + " --> Replaced by the Actor starting the Dialogue"); + + var options = new EditorUtils.ReorderableListOptions(); + options.allowAdd = false; + options.allowRemove = true; + options.unityObjectContext = dialogue; + EditorUtils.ReorderableList(dialogue.actorParameters, options, (i, picked) => + { + var reference = dialogue.actorParameters[i]; + GUILayout.BeginHorizontal(); + if ( dialogue.actorParameters.Where(r => r != reference).Select(r => r.name).Contains(reference.name) ) { + GUI.backgroundColor = Color.red; + } + var newRefName = EditorGUILayout.DelayedTextField(reference.name); + if ( newRefName != reference.name ) { + UndoUtility.RecordObject(dialogue, "Actor Parameter Name Change"); + reference.name = newRefName; + UndoUtility.SetDirty(dialogue); + } + GUI.backgroundColor = Color.white; + var newReference = (Object)EditorGUILayout.ObjectField(reference.actor as Object, typeof(Object), true); + if ( !ReferenceEquals(newReference, reference.actor) ) { + UndoUtility.RecordObject(dialogue, "Actor Assignment"); + //all this jazz because ObjectField does not work with interfaces... + if ( newReference == null ) { + reference.actor = null; + } else { + if ( newReference is Component ) { newReference = ( newReference as Component ).GetComponent(typeof(IDialogueActor)); } + if ( newReference is GameObject ) { newReference = ( newReference as GameObject ).GetComponent(typeof(IDialogueActor)); } + if ( newReference is IDialogueActor ) { + reference.actor = (IDialogueActor)newReference; + } else { ParadoxNotion.Services.Logger.LogWarning("Object is not an IDialogueActor and none of the components attached is an IDialogueActor either."); } + } + UndoUtility.SetDirty(dialogue); + } + GUILayout.EndHorizontal(); + }); + + GUILayout.EndVertical(); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs.meta new file mode 100644 index 0000000..f255b96 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Editor/Inspectors/DialogueTreeInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8eb93d789c99f9740a5607b35373ba73 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules.meta new file mode 100644 index 0000000..26657ce --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4b96917df5b826b42aca7c0146350c6c +folderAsset: yes +timeCreated: 1538756895 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer.meta new file mode 100644 index 0000000..5002a6e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 041e18f0c8aec704cb1d5550618b04c5 +folderAsset: yes +timeCreated: 1435255793 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs new file mode 100644 index 0000000..d9e80b2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs @@ -0,0 +1,119 @@ +using UnityEngine; +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Serialization; + +namespace NodeCanvas +{ + + [AddComponentMenu("NodeCanvas/Standalone Action List (Bonus)")] + public class ActionListPlayer : MonoBehaviour, ITaskSystem, ISerializationCallbackReceiver + { + + public bool playOnAwake; + + [SerializeField] private string _serializedList; + [SerializeField] private List _objectReferences; + [SerializeField] private Blackboard _blackboard; + + [System.NonSerialized] + private ActionList _actionList; + + private float timeStarted; + + void ISerializationCallbackReceiver.OnBeforeSerialize() { + // if ( ParadoxNotion.Services.Threader.applicationIsPlaying ) { return; } + _objectReferences = new List(); + _serializedList = JSONSerializer.Serialize(typeof(ActionList), _actionList, _objectReferences); + } + + void ISerializationCallbackReceiver.OnAfterDeserialize() { + _actionList = JSONSerializer.Deserialize(_serializedList, _objectReferences); + if ( _actionList == null ) _actionList = (ActionList)Task.Create(typeof(ActionList), this); + } + + ///---------------------------------------------------------------------------------------------- + + public ActionList actionList => _actionList; + public float elapsedTime => Time.time - timeStarted; + public float deltaTime => Time.deltaTime; + Object ITaskSystem.contextObject => this; + Component ITaskSystem.agent => this; + + public IBlackboard blackboard { + get { return _blackboard; } + set + { + if ( !ReferenceEquals(_blackboard, value) ) { + _blackboard = (Blackboard)(object)value; + UpdateTasksOwner(); + } + } + } + + ///---------------------------------------------------------------------------------------------- + + public static ActionListPlayer Create() { + return new GameObject("ActionList").AddComponent(); + } + + protected void Awake() { + UpdateTasksOwner(); + if ( playOnAwake ) { + Play(); + } + } + + public void UpdateTasksOwner() { + actionList.SetOwnerSystem(this); + foreach ( var a in actionList.actions ) { + a.SetOwnerSystem(this); + BBParameter.SetBBFields(a, blackboard); + } + } + + void ITaskSystem.SendEvent(string name, object value, object sender) { + ParadoxNotion.Services.Logger.LogWarning("Sending events to standalone action lists has no effect", LogTag.EXECUTION, this); + } + void ITaskSystem.SendEvent(string name, T value, object sender) { + ParadoxNotion.Services.Logger.LogWarning("Sending events to standalone action lists has no effect", LogTag.EXECUTION, this); + } + + [ContextMenu("Play")] + public void Play() { Play(this, this.blackboard, null); } + public void Play(System.Action OnFinish) { Play(this, this.blackboard, OnFinish); } + public void Play(Component agent, IBlackboard blackboard, System.Action OnFinish) { + if ( Application.isPlaying ) { + timeStarted = Time.time; + actionList.ExecuteIndependent(agent, blackboard, OnFinish); + } + } + + public Status Execute() { return actionList.Execute(this, blackboard); } + public Status Execute(Component agent) { return actionList.Execute(agent, blackboard); } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + [UnityEditor.MenuItem("Tools/ParadoxNotion/NodeCanvas/Create/Standalone Action List", false, 3)] + static void CreateActionListPlayer() { + UnityEditor.Selection.activeObject = Create(); + } + + void Reset() { + var bb = GetComponent(); + _blackboard = bb != null ? bb : gameObject.AddComponent(); + _actionList = (ActionList)Task.Create(typeof(ActionList), this); + } + + void OnValidate() { + if ( !Application.isPlaying && !UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode ) { + UpdateTasksOwner(); + } + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs.meta new file mode 100644 index 0000000..89932e6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/ActionListPlayer/ActionListPlayer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 771e8d04ad23ec04ca6178c3be664c99 +timeCreated: 1435079338 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees.meta new file mode 100644 index 0000000..13af256 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3e4c919d6c8ace54abe33fbe755d92f0 +folderAsset: yes +timeCreated: 1448983354 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs new file mode 100644 index 0000000..7a36c08 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs @@ -0,0 +1,12 @@ +using NodeCanvas.Framework; + + +namespace NodeCanvas.BehaviourTrees +{ + + ///The connection object for BehaviourTree nodes + public class BTConnection : Connection + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs.meta new file mode 100644 index 0000000..1807387 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTConnection.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a30540c2f2ef9254686deec5ba838b26 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs new file mode 100644 index 0000000..e278cfb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs @@ -0,0 +1,52 @@ +using ParadoxNotion; +using NodeCanvas.Framework; + + +namespace NodeCanvas.BehaviourTrees +{ + + /// Super Base class for BehaviourTree nodes that can live within a BehaviourTree Graph. + abstract public class BTNode : Node + { + + sealed public override System.Type outConnectionType { get { return typeof(BTConnection); } } + sealed public override bool allowAsPrime { get { return true; } } + sealed public override bool canSelfConnect { get { return false; } } + public override Alignment2x2 commentsAlignment { get { return Alignment2x2.Bottom; } } + public override Alignment2x2 iconAlignment { get { return Alignment2x2.Default; } } + public override int maxInConnections { get { return 1; } } + public override int maxOutConnections { get { return 0; } } + + ///Add a child node to this node connected to the specified child index + public T AddChild(int childIndex) where T : BTNode { + if ( outConnections.Count >= maxOutConnections && maxOutConnections != -1 ) { + return null; + } + var child = graph.AddNode(); + graph.ConnectNodes(this, child, childIndex); + return child; + } + + ///Add a child node to this node connected last + public T AddChild() where T : BTNode { + if ( outConnections.Count >= maxOutConnections && maxOutConnections != -1 ) { + return null; + } + var child = graph.AddNode(); + graph.ConnectNodes(this, child); + return child; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override UnityEditor.GenericMenu OnContextMenu(UnityEditor.GenericMenu menu) { + menu.AddItem(new UnityEngine.GUIContent("Breakpoint"), isBreakpoint, () => { isBreakpoint = !isBreakpoint; }); + return ParadoxNotion.Design.EditorUtils.GetTypeSelectionMenu(typeof(BTDecorator), (t) => { this.DecorateWith(t); }, menu, "Decorate"); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs.meta new file mode 100644 index 0000000..a386ed5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36c47b59831d8804eb0ff34bcb2622a7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs new file mode 100644 index 0000000..4ed5616 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + [Category("SubGraphs")] + [Color("ffe4e1")] + abstract public class BTNodeNested : BTNode, IGraphAssignable where T : Graph + { + [SerializeField] private List _variablesMap; + + abstract public T subGraph { get; set; } + abstract public BBParameter subGraphParameter { get; } + + public T currentInstance { get; set; } + public Dictionary instances { get; set; } + public List variablesMap { get { return _variablesMap; } set { _variablesMap = value; } } + + Graph IGraphAssignable.subGraph { get { return subGraph; } set { subGraph = (T)value; } } + Graph IGraphAssignable.currentInstance { get { return currentInstance; } set { currentInstance = (T)value; } } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs.meta new file mode 100644 index 0000000..8f7072a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BTNodeNested.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 446133630245ab947a1bef9bbc5d5aa3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs new file mode 100644 index 0000000..caf3f62 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs @@ -0,0 +1,115 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + /// BehaviourTrees are used to create advanced AI and logic based on simple rules. + [GraphInfo( + packageName = "NodeCanvas", + docsURL = "https://nodecanvas.paradoxnotion.com/documentation/", + resourcesURL = "https://nodecanvas.paradoxnotion.com/downloads/", + forumsURL = "https://nodecanvas.paradoxnotion.com/forums-page/" + )] + [CreateAssetMenu(menuName = "ParadoxNotion/NodeCanvas/Behaviour Tree Asset")] + public class BehaviourTree : Graph + { + + ///---------------------------------------------------------------------------------------------- + [System.Serializable] + class DerivedSerializationData + { + public bool repeat; + public float updateInterval; + } + + public override object OnDerivedDataSerialization() { + var data = new DerivedSerializationData(); + data.repeat = this.repeat; + data.updateInterval = this.updateInterval; + return data; + } + + public override void OnDerivedDataDeserialization(object data) { + if ( data is DerivedSerializationData ) { + this.repeat = ( (DerivedSerializationData)data ).repeat; + this.updateInterval = ( (DerivedSerializationData)data ).updateInterval; + } + } + ///---------------------------------------------------------------------------------------------- + + ///Should the tree repeat forever? + [System.NonSerialized] public bool repeat = true; + ///The frequency in seconds for the tree to repeat if set to repeat. + [System.NonSerialized] public float updateInterval = 0; + + ///Raised when the root status of the behaviour is changed + public static event System.Action onRootStatusChanged; + + private float intervalCounter; + private Status _rootStatus = Status.Resting; + + ///The last status of the root node + public Status rootStatus { + get { return _rootStatus; } + private set + { + if ( _rootStatus != value ) { + _rootStatus = value; + if ( onRootStatusChanged != null ) { + onRootStatusChanged(this, value); + } + } + } + } + + ///---------------------------------------------------------------------------------------------- + public override System.Type baseNodeType => typeof(BTNode); + public override bool requiresAgent => true; + public override bool requiresPrimeNode => true; + public override bool isTree => true; + public override bool allowBlackboardOverrides => true; + sealed public override bool canAcceptVariableDrops => false; + public override ParadoxNotion.PlanarDirection flowDirection => ParadoxNotion.PlanarDirection.Vertical; + ///---------------------------------------------------------------------------------------------- + + protected override void OnGraphStarted() { + intervalCounter = updateInterval; + rootStatus = primeNode.status; + } + + protected override void OnGraphUpdate() { + + if ( intervalCounter >= updateInterval ) { + intervalCounter = 0; + if ( Tick(agent, blackboard) != Status.Running && !repeat ) { + Stop(rootStatus == Status.Success); + } + } + + if ( updateInterval > 0 ) { + intervalCounter += Time.deltaTime; + } + } + + ///Tick the tree once for the provided agent and with the provided blackboard + Status Tick(Component agent, IBlackboard blackboard) { + if ( rootStatus != Status.Running ) { primeNode.Reset(); } + return rootStatus = primeNode.Execute(agent, blackboard); + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + [UnityEditor.MenuItem("Tools/ParadoxNotion/NodeCanvas/Create/Behaviour Tree Asset", false, 0)] + static void Editor_CreateGraph() { + var newGraph = EditorUtils.CreateAsset(); + UnityEditor.Selection.activeObject = newGraph; + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs.meta new file mode 100644 index 0000000..99a177b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTree.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 7a686a47eee2fa44cb0a34b5d86e4d5e +labels: +- AI +- behaviourtree +- visualscripting +- behaviour +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs new file mode 100644 index 0000000..0e66b1f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs @@ -0,0 +1,148 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using System.Linq; + +namespace NodeCanvas.BehaviourTrees +{ + + public static class BehaviourTreeExtensions + { + + ///Replace the node with another + public static Node ReplaceWith(this Node node, System.Type t) { + + var newNode = node.graph.AddNode(t, node.position); + foreach ( var c in node.inConnections.ToArray() ) { + c.SetTargetNode(newNode); + } + + foreach ( var c in node.outConnections.ToArray() ) { + c.SetSourceNode(newNode); + } + + if ( node.graph.primeNode == node ) { + node.graph.primeNode = newNode; + } + + if ( node is ITaskAssignable && newNode is ITaskAssignable ) { + var assignableNode = node as ITaskAssignable; + var assignableNewNode = newNode as ITaskAssignable; + try { assignableNewNode.task = assignableNode.task; } + catch { /* cant assign */ } + } + + node.graph.RemoveNode(node); + return newNode; + } + + ///Create a new SubTree out of the branch of the provided root node + public static BehaviourTree ConvertToSubTree(this BTNode root) { + + if ( !UnityEditor.EditorUtility.DisplayDialog("Convert to SubTree", "This will create a new SubTree out of this branch.\nAre you sure?", "Yes", "No!") ) { + return null; + } + + var newBT = EditorUtils.CreateAsset(); + if ( newBT == null ) { + return null; + } + + var subTreeNode = root.graph.AddNode(root.position); + subTreeNode.subGraph = newBT; + + for ( var i = 0; i < root.inConnections.Count; i++ ) { + root.inConnections[i].SetTargetNode(subTreeNode); + } + + root.inConnections.Clear(); + + newBT.primeNode = DuplicateBranch(root, newBT); + DeleteBranch(root); + + UnityEditor.AssetDatabase.SaveAssets(); + return newBT; + } + + ///Delete the whole branch of provided root node along with the root node + public static void DeleteBranch(this BTNode root) { + var graph = root.graph; + foreach ( var node in root.GetAllChildNodesRecursively(true).ToArray() ) { + graph.RemoveNode(node); + } + } + + ///Duplicate a node along with all children hierarchy + public static Node DuplicateBranch(this BTNode root, Graph targetGraph) { + + if ( targetGraph == null ) { + return null; + } + + var newNode = root.Duplicate(targetGraph); + var dupConnections = new List(); + for ( var i = 0; i < root.outConnections.Count; i++ ) { + dupConnections.Add(root.outConnections[i].Duplicate(newNode, DuplicateBranch((BTNode)root.outConnections[i].targetNode, targetGraph))); + } + newNode.outConnections.Clear(); + foreach ( var c in dupConnections ) { + newNode.outConnections.Add(c); + } + return newNode; + } + + ///Decorates BT node with decorator type + public static Node DecorateWith(this BTNode node, System.Type t) { + var newNode = node.graph.AddNode(t, node.position + new UnityEngine.Vector2(0, -80)); + if ( node.inConnections.Count == 0 ) { + node.graph.ConnectNodes(newNode, node); + } else { + var parent = node.inConnections[0].sourceNode; + var parentConnection = node.inConnections[0]; + var index = parent.outConnections.IndexOf(parentConnection); + node.graph.RemoveConnection(parentConnection); + node.graph.ConnectNodes(newNode, node); + node.graph.ConnectNodes(parent, newNode, index); + NodeCanvas.Editor.GraphEditorUtility.activeElement = newNode; + } + return newNode; + } + + ///Fetch all child nodes of the node recursively, optionaly including this. In other words, this fetches the whole branch. + public static List GetAllChildNodesRecursively(this BTNode root, bool includeThis) { + + var childList = new List(); + if ( includeThis ) { + childList.Add(root); + } + + foreach ( BTNode child in root.outConnections.Select(c => c.targetNode) ) { + childList.AddRange(child.GetAllChildNodesRecursively(true)); + } + + return childList; + } + + ///Fetch all child nodes of this node with their depth in regards to this node. So, first level children will have a depth of 1 while second level a depth of 2 + public static Dictionary GetAllChildNodesWithDepthRecursively(this BTNode root, bool includeThis, int startIndex) { + + var childList = new Dictionary(); + if ( includeThis ) { + childList[root] = startIndex; + } + + foreach ( BTNode child in root.outConnections.Select(c => c.targetNode) ) { + foreach ( var pair in child.GetAllChildNodesWithDepthRecursively(true, startIndex + 1) ) { + childList[pair.Key] = pair.Value; + } + } + + return childList; + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs.meta new file mode 100644 index 0000000..d6d5533 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeExtensions.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 274b815aabe24fb4cb3b2db61d263a82 +timeCreated: 1511235461 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs new file mode 100644 index 0000000..abcf611 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs @@ -0,0 +1,42 @@ +using NodeCanvas.Framework; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + /// Use this component on a game object to behave based on a BehaviourTree. + [AddComponentMenu("NodeCanvas/Behaviour Tree Owner")] + public class BehaviourTreeOwner : GraphOwner + { + + ///Should the assigned BT reset and re-execute after a cycle? Sets the BehaviourTree's repeat + public bool repeat { + get { return behaviour != null ? behaviour.repeat : true; } + set { if ( behaviour != null ) behaviour.repeat = value; } + } + + ///The interval in seconds to update the BT. 0 for every frame. Sets the BehaviourTree's updateInterval + public float updateInterval { + get { return behaviour != null ? behaviour.updateInterval : 0; } + set { if ( behaviour != null ) behaviour.updateInterval = value; } + } + + ///The last status of the assigned Behaviour Tree's root node (aka Start Node) + public Status rootStatus { + get { return behaviour != null ? behaviour.rootStatus : Status.Resting; } + } + + ///Ticks the assigned Behaviour Tree for this owner agent and returns it's root status + public Status Tick() { + + if ( behaviour == null ) { + ParadoxNotion.Services.Logger.LogWarning("There is no Behaviour Tree assigned", LogTag.EXECUTION, gameObject); + return Status.Resting; + } + + UpdateBehaviour(); + return behaviour.rootStatus; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs.meta new file mode 100644 index 0000000..8398593 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/BehaviourTreeOwner.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: aad115aca74ce3c4891b3f6de0b4aae8 +labels: +- AI +- behaviourtree +- visualscripting +- behaviour +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b5eeec78a0081094cb8dfeb83808d762, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes.meta new file mode 100644 index 0000000..b8b7ff3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 600973cdc7297f644ae02138cc4daed8 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs new file mode 100644 index 0000000..288a19a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs @@ -0,0 +1,36 @@ +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + /// Base class for BehaviourTree Composite nodes. + abstract public class BTComposite : BTNode + { + + public override string name => base.name.ToUpper(); + + sealed public override int maxOutConnections => -1; + sealed public override Alignment2x2 commentsAlignment => Alignment2x2.Right; + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override UnityEditor.GenericMenu OnContextMenu(UnityEditor.GenericMenu menu) { + menu = base.OnContextMenu(menu); + menu = EditorUtils.GetTypeSelectionMenu(typeof(BTComposite), (t) => { this.ReplaceWith(t); }, menu, "Replace"); + menu.AddItem(new GUIContent("Convert to SubTree"), false, () => { this.ConvertToSubTree(); }); + if ( outConnections.Count > 0 ) { + menu.AddItem(new GUIContent("Duplicate Branch"), false, () => { this.DuplicateBranch(graph); }); + menu.AddItem(new GUIContent("Delete Branch"), false, () => { this.DeleteBranch(); }); + } + return menu; + } + +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs.meta new file mode 100644 index 0000000..cb6fdae --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTComposite.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e93e7cbdaad6ba44b9dc279b92d4aa1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs new file mode 100644 index 0000000..e177ee8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs @@ -0,0 +1,35 @@ +using ParadoxNotion; +using NodeCanvas.Framework; +using System.Linq; + +namespace NodeCanvas.BehaviourTrees +{ + + /// Base class for BehaviourTree Decorator nodes. + abstract public class BTDecorator : BTNode + { + + sealed public override int maxOutConnections { get { return 1; } } + sealed public override Alignment2x2 commentsAlignment { get { return Alignment2x2.Right; } } + + ///The decorated connection element + protected Connection decoratedConnection => outConnections.Count > 0 ? outConnections[0] : null; + + ///The decorated node element + protected Node decoratedNode => decoratedConnection?.targetNode; + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override UnityEditor.GenericMenu OnContextMenu(UnityEditor.GenericMenu menu) { + menu = base.OnContextMenu(menu); + menu = ParadoxNotion.Design.EditorUtils.GetTypeSelectionMenu(typeof(BTDecorator), (t) => { this.ReplaceWith(t); }, menu, "Replace"); + return menu; + } + +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs.meta new file mode 100644 index 0000000..9433cd0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/BTDecorator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db739e985051c1649a1542c75a5c0c35 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites.meta new file mode 100644 index 0000000..ed46594 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c91f78ceede3d6f4083926a34147bd51 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs new file mode 100644 index 0000000..185b92e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs @@ -0,0 +1,82 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Composites")] + [Description("Quick way to execute the left or the right child based on a Condition Task.")] + [ParadoxNotion.Design.Icon("Condition")] + [Color("b3ff7f")] + public class BinarySelector : BTNode, ITaskAssignable + { + + [Tooltip("If true, the condition will be re-evaluated per tick.")] + public bool dynamic; + + [SerializeField] + private ConditionTask _condition; + + private int succeedIndex; + + public override int maxOutConnections => 2; + public override Alignment2x2 commentsAlignment => Alignment2x2.Right; + + public override string name => base.name.ToUpper(); + + public Task task { + get { return condition; } + set { condition = (ConditionTask)value; } + } + + private ConditionTask condition { + get { return _condition; } + set { _condition = value; } + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( condition == null || outConnections.Count < 2 ) { + return Status.Optional; + } + + if ( status == Status.Resting ) { + condition.Enable(agent, blackboard); + } + + if ( dynamic || status == Status.Resting ) { + var lastIndex = succeedIndex; + succeedIndex = condition.Check(agent, blackboard) ? 0 : 1; + if ( succeedIndex != lastIndex ) { + outConnections[lastIndex].Reset(); + } + } + + return outConnections[succeedIndex].Execute(agent, blackboard); + } + + protected override void OnReset() { + condition?.Disable(); + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override string GetConnectionInfo(int i) { + return i == 0 ? "TRUE" : "FALSE"; + } + + protected override void OnNodeGUI() { + if ( dynamic ) { + GUILayout.Label("DYNAMIC"); + } + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs.meta new file mode 100644 index 0000000..d5f44ea --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/BinarySelector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48e71e5905e9e394e83cbdce71c91feb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs new file mode 100644 index 0000000..5a02dda --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs @@ -0,0 +1,121 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Parallel", 8)] + [Category("Composites")] + [Description("Executes all children simultaneously and return Success or Failure depending on the selected Policy.")] + [ParadoxNotion.Design.Icon("Parallel")] + [Color("ff64cb")] + public class Parallel : BTComposite + { + public enum ParallelPolicy + { + FirstFailure = 0, + FirstSuccess = 1, + FirstSuccessOrFailure = 2, + } + + [Tooltip("The policy determines when the Parallel node will end and return its Status.")] + public ParallelPolicy policy = ParallelPolicy.FirstFailure; + [Name("Repeat"), Tooltip("If true, finished children are repeated until the Policy set is met, or until all children have had a chance to finish at least once.")] + public bool dynamic; + + private bool[] finishedConnections; + private int finishedConnectionsCount; + + public override void OnGraphStarted() { + finishedConnections = new bool[outConnections.Count]; + finishedConnectionsCount = 0; + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + var defferedStatus = Status.Resting; + for ( var i = 0; i < outConnections.Count; i++ ) { + var connection = outConnections[i]; + var isConnectionFinished = finishedConnections[i] == true; + + if ( !dynamic && isConnectionFinished ) { + continue; + } + + if ( connection.status != Status.Running && isConnectionFinished ) { + connection.Reset(); + } + + status = connection.Execute(agent, blackboard); + + if ( defferedStatus == Status.Resting ) { + if ( status == Status.Failure && ( policy == ParallelPolicy.FirstFailure || policy == ParallelPolicy.FirstSuccessOrFailure ) ) { + defferedStatus = Status.Failure; + } + + if ( status == Status.Success && ( policy == ParallelPolicy.FirstSuccess || policy == ParallelPolicy.FirstSuccessOrFailure ) ) { + defferedStatus = Status.Success; + } + } + + if ( status != Status.Running && !isConnectionFinished ) { + finishedConnections[i] = true; + finishedConnectionsCount++; + } + } + + if ( defferedStatus != Status.Resting ) { + ResetRunning(); + status = defferedStatus; + return defferedStatus; + } + + if ( finishedConnectionsCount == outConnections.Count ) { + ResetRunning(); + switch ( policy ) { + case ParallelPolicy.FirstFailure: + return Status.Success; + case ParallelPolicy.FirstSuccess: + return Status.Failure; + } + } + + return Status.Running; + } + + protected override void OnReset() { + for ( var i = 0; i < finishedConnections.Length; i++ ) { finishedConnections[i] = false; } + finishedConnectionsCount = 0; + } + + void ResetRunning() { + for ( var i = 0; i < outConnections.Count; i++ ) { + if ( outConnections[i].status == Status.Running ) { + outConnections[i].Reset(); + } + } + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- + +#if UNITY_EDITOR + + public override string GetConnectionInfo(int i) { + if ( dynamic && status == Status.Running ) { + return string.Format("Branch Finished: {0}", finishedConnections[i].ToString()); + } + return null; + } + + + protected override void OnNodeGUI() { + GUILayout.Label(( dynamic ? "REPEAT\n" : string.Empty ) + ( string.Format("{0}", policy.ToString().SplitCamelCase()) )); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs.meta new file mode 100644 index 0000000..c0a02f4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Parallel.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20bb0006fe2ddc941b3bddd6e00a1321 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs new file mode 100644 index 0000000..b915a90 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs @@ -0,0 +1,269 @@ +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + ///---------------------------------------------------------------------------------------------- + class PrioritySelector_0 : BTComposite + { + [SerializeField] public List> priorities = null; + } + ///---------------------------------------------------------------------------------------------- + + [Category("Composites")] + [Description("Used for Utility AI, the Priority Selector executes the child with the highest utility weight. If it fails, the Priority Selector will continue with the next highest utility weight child until one Succeeds, or until all Fail (similar to how a normal Selector does).\n\nEach child branch represents a desire, where each desire has one or more considerations which are combined together.\nConsiderations are a pair of input value and curve, which together produce the consideration utility weight.\n\nIf Dynamic option is enabled, will continously evaluate utility weights and execute the child with the highest one regardless of what status it return.")] + [ParadoxNotion.Design.Icon("Priority")] + [Color("b3ff7f")] + [fsMigrateVersions(typeof(PrioritySelector_0))] + public class PrioritySelector : BTComposite, IMigratable + { + ///---------------------------------------------------------------------------------------------- + void IMigratable.Migrate(PrioritySelector_0 model) { + this.desires = new List(); + foreach ( var priority in model.priorities ) { + var desire = new Desire(); + this.desires.Add(desire); + var consideration = desire.AddConsideration(graphBlackboard); + consideration.input = priority; + } + } + ///---------------------------------------------------------------------------------------------- + + //The operation for combining the consideration utilities + public enum ConsiderationsOperation + { + Average, + Min, + Max, + } + + [System.Serializable] + public class Desire + { + [fsIgnoreInBuild] + public string name; + [fsIgnoreInBuild] + public bool foldout; + public ConsiderationsOperation considerationsOperation; + public List considerations = new(); + + public Consideration AddConsideration(IBlackboard bb) { + var result = new Consideration(bb); + considerations.Add(result); + return result; + } + + public void RemoveConsideration(Consideration consideration) { considerations.Remove(consideration); } + + public float GetCompoundUtility() { + if ( considerationsOperation == ConsiderationsOperation.Average ) { + float total = 0; + for ( var i = 0; i < considerations.Count; i++ ) { + total += considerations[i].utility; + } + return total / considerations.Count; + } + if ( considerationsOperation == ConsiderationsOperation.Max ) { + float result = float.NegativeInfinity; + for ( var i = 0; i < considerations.Count; i++ ) { + result = Mathf.Max(result, considerations[i].utility); + } + return result; + } + if ( considerationsOperation == ConsiderationsOperation.Min ) { + float result = float.PositiveInfinity; + for ( var i = 0; i < considerations.Count; i++ ) { + result = Mathf.Min(result, considerations[i].utility); + } + return result; + } + return 0; + } + } + + [System.Serializable] + public class Consideration + { + public BBParameter input; + public BBParameter function; + public BBParameter inputMin; + public BBParameter inputMax; + + public float utility { + get + { + var curve = function.value; + if ( curve == null ) { return input.value; } + if ( curve.keys?.LastOrDefault().time > 1 ) { //this is only done for backwards compatibility + return curve.Evaluate(input.value); + } + return curve.Evaluate(Mathf.InverseLerp(inputMin.value, inputMax.value, input.value)); + } + } + public Consideration() { + input = 1f; + function = null; + inputMin = 0f; + inputMax = 1f; + } + + public Consideration(IBlackboard blackboard) { + input = new BBParameter { value = 1f, bb = blackboard }; + function = new BBParameter { bb = blackboard }; + inputMin = new BBParameter { value = 0f, bb = blackboard }; + inputMax = new BBParameter { value = 1f, bb = blackboard }; + } + } + + ///---------------------------------------------------------------------------------------------- + + [Tooltip("If enabled, will continously evaluate utility weights and immediately execute the child with the highest one. In this mode child return status does not matter.")] + public bool dynamic; + [AutoSortWithChildrenConnections] + public List desires; + + private Connection[] orderedConnections; + private int current = 0; + + public override void OnChildConnected(int index) { + if ( desires == null ) { desires = new List(); } + if ( desires.Count < outConnections.Count ) { desires.Insert(index, new Desire()); } + } + + public override void OnChildDisconnected(int index) { desires.RemoveAt(index); } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( dynamic ) { + var highestPriority = float.NegativeInfinity; + var best = 0; + for ( var i = 0; i < outConnections.Count; i++ ) { + var priority = desires[i].GetCompoundUtility(); + if ( priority > highestPriority ) { + highestPriority = priority; + best = i; + } + } + + if ( best != current ) { + outConnections[current].Reset(); + current = best; + } + return outConnections[current].Execute(agent, blackboard); + } + + ///---------------------------------------------------------------------------------------------- + + if ( status == Status.Resting ) { + orderedConnections = outConnections.OrderBy(c => desires[outConnections.IndexOf(c)].GetCompoundUtility()).ToArray(); + } + + for ( var i = orderedConnections.Length; i-- > 0; ) { + status = orderedConnections[i].Execute(agent, blackboard); + if ( status == Status.Success ) { + return Status.Success; + } + + if ( status == Status.Running ) { + current = i; + return Status.Running; + } + } + + return Status.Failure; + } + + protected override void OnReset() { current = 0; } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- + +#if UNITY_EDITOR + + //.. + public override string GetConnectionInfo(int i) { + var desire = desires[i]; + var desireName = string.IsNullOrEmpty(desire.name) ? "DESIRE " + i.ToString() : desire.name; + var result = "" + desireName.ToUpper() + "\n"; + for ( var j = 0; j < desire.considerations.Count; j++ ) { + result += desire.considerations[j].input.ToString() + " (" + desire.considerations[j].utility.ToString("0.00") + ")" + "\n"; + } + return result += string.Format("{0} ({1})", desire.considerationsOperation, desire.GetCompoundUtility().ToString("0.00")); + } + + //.. + public override void OnConnectionInspectorGUI(int i) { + var desire = desires[i]; + + desire.name = UnityEditor.EditorGUILayout.TextField("Friendly Name", desire.name); + if ( GUILayout.Button("Add Consideration") ) { desire.AddConsideration(graphBlackboard); } + + var optionsB = new EditorUtils.ReorderableListOptions(); + optionsB.allowAdd = false; + optionsB.allowRemove = true; + EditorUtils.ReorderableList(desire.considerations, optionsB, (j, pickedB) => + { + var consideration = desire.considerations[j]; + GUILayout.BeginVertical("box"); + consideration.input = (BBParameter)Editor.BBParameterEditor.ParameterField(EditorUtils.GetTempContent("Input", null, "The input value of the consideration"), consideration.input, true); + consideration.function = (BBParameter)Editor.BBParameterEditor.ParameterField(EditorUtils.GetTempContent("Cuve", null, "The utility function curve. It will be evaluated by the input value after input is adjusted to a 0 to 1 range by min and max below. Curve should also be in a 0 to 1 range."), consideration.function); + if ( consideration.function.value != null ) { + var curveInRange = consideration.function.value.keys.LastOrDefault().time <= 1 && consideration.function.value.keys.FirstOrDefault().time >= 0; + if ( !curveInRange ) { + UnityEditor.EditorGUILayout.HelpBox("Curve should ideally be in a range of 0 to 1 on x axis (time), and use the input min and max parameters below to map the input on the curve instead.\nThe input min and max parameters are currently ignored.", UnityEditor.MessageType.Info); + } + GUI.enabled = curveInRange; + consideration.inputMin = (BBParameter)Editor.BBParameterEditor.ParameterField(EditorUtils.GetTempContent("Input Min", null, "The expected input min value"), consideration.inputMin); + consideration.inputMax = (BBParameter)Editor.BBParameterEditor.ParameterField(EditorUtils.GetTempContent("Input Max", null, "The expected input max value"), consideration.inputMax); + GUI.enabled = true; + } + GUILayout.EndVertical(); + }); + + if ( desire.considerations.Count > 1 ) { + desire.considerationsOperation = (ConsiderationsOperation)UnityEditor.EditorGUILayout.EnumPopup(string.Empty, desire.considerationsOperation); + } + + EditorUtils.Separator(); + } + + protected override void OnNodeGUI() { + if ( dynamic ) { GUILayout.Label("DYNAMIC"); } + } + + //.. + protected override void OnNodeInspectorGUI() { + + if ( outConnections.Count == 0 ) { + GUILayout.Label("Make some connections first"); + return; + } + + dynamic = UnityEditor.EditorGUILayout.Toggle(new GUIContent("Dynamic", "If enabled, will continously evaluate utility weights and execute the child with the highest one accordingly. In this mode child return status does not matter."), dynamic); + + EditorUtils.Separator(); + EditorUtils.CoolLabel("Desires"); + + var optionsA = new EditorUtils.ReorderableListOptions(); + optionsA.allowAdd = false; + optionsA.allowRemove = false; + EditorUtils.ReorderableList(desires, optionsA, (i, pickedA) => + { + var desire = desires[i]; + var desireName = string.IsNullOrEmpty(desire.name) ? "DESIRE " + i.ToString() : desire.name; + desire.foldout = UnityEditor.EditorGUILayout.Foldout(desire.foldout, new GUIContent(desireName)); + if ( desire.foldout ) { + OnConnectionInspectorGUI(i); + } + }); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs.meta new file mode 100644 index 0000000..a325a88 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/PrioritySelector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39f51e3aa06f96c4399b79d7656917c6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs new file mode 100644 index 0000000..c0f49f5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs @@ -0,0 +1,133 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Composites")] + [Description("Selects a child to execute based on its chance to be selected and returns Success if the child returns Success, otherwise picks another child.\nReturns Failure if all children return Failure, or a direct 'Failure Chance' is introduced.")] + [ParadoxNotion.Design.Icon("ProbabilitySelector")] + [Color("b3ff7f")] + public class ProbabilitySelector : BTComposite + { + + [AutoSortWithChildrenConnections, Tooltip("The weights of the children.")] + public List> childWeights; + [Tooltip("A chance for the node to fail immediately.")] + public BBParameter failChance; + + private bool[] indexFailed; + private float[] tmpWeights; + private float tmpFailWeight; + private float tmpTotal; + private float tmpDice; + + public override void OnChildConnected(int index) { + if ( childWeights == null ) { childWeights = new List>(); } + if ( childWeights.Count < outConnections.Count ) { + childWeights.Insert(index, new BBParameter { value = 1, bb = graphBlackboard }); + } + } + + public override void OnChildDisconnected(int index) { + childWeights.RemoveAt(index); + } + + public override void OnGraphStarted() { OnReset(); } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( status == Status.Resting ) { + tmpDice = Random.value; + tmpFailWeight = failChance.value; + tmpTotal = tmpFailWeight; + for ( var i = 0; i < childWeights.Count; i++ ) { + var childWeight = childWeights[i].value; + tmpTotal += childWeight; + tmpWeights[i] = childWeight; + } + } + + var prob = tmpFailWeight / tmpTotal; + if ( tmpDice < prob ) { + return Status.Failure; + } + + for ( var i = 0; i < outConnections.Count; i++ ) { + + if ( indexFailed[i] ) { + continue; + } + + prob += tmpWeights[i] / tmpTotal; + if ( tmpDice <= prob ) { + status = outConnections[i].Execute(agent, blackboard); + if ( status == Status.Success || status == Status.Running ) { + return status; + } + + if ( status == Status.Failure ) { + indexFailed[i] = true; + tmpTotal -= tmpWeights[i]; + return Status.Running; + } + } + } + + return Status.Failure; + } + + protected override void OnReset() { + tmpWeights = new float[outConnections.Count]; + indexFailed = new bool[outConnections.Count]; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + float GetTotal() { + var total = failChance.value; + for ( var i = 0; i < childWeights.Count; i++ ) { + total += childWeights[i].value; + } + return total; + } + + public override string GetConnectionInfo(int i) { + return Mathf.Round(( childWeights[i].value / GetTotal() ) * 100) + "%"; + } + + public override void OnConnectionInspectorGUI(int i) { + NodeCanvas.Editor.BBParameterEditor.ParameterField("Weight", childWeights[i]); + } + + protected override void OnNodeInspectorGUI() { + + if ( outConnections.Count == 0 ) { + GUILayout.Label("Make some connections first"); + return; + } + + var total = GetTotal(); + for ( var i = 0; i < childWeights.Count; i++ ) { + GUILayout.BeginHorizontal(); + childWeights[i] = (BBParameter)NodeCanvas.Editor.BBParameterEditor.ParameterField("Weight", childWeights[i]); + GUILayout.Label(Mathf.Round(( childWeights[i].value / total ) * 100) + "%", GUILayout.Width(38)); + GUILayout.EndHorizontal(); + } + + GUILayout.Space(5); + + GUILayout.BeginHorizontal(); + failChance = (BBParameter)NodeCanvas.Editor.BBParameterEditor.ParameterField("Direct Failure Chance", failChance); + GUILayout.Label(Mathf.Round(( failChance.value / total ) * 100) + "%", GUILayout.Width(38)); + GUILayout.EndHorizontal(); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs.meta new file mode 100644 index 0000000..2a5285c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/ProbabilitySelector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23428d321072cac43b4e9c02610e96d6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs new file mode 100644 index 0000000..3d309e6 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs @@ -0,0 +1,87 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Selector", 9)] + [Category("Composites")] + [Description("Executes its children in order and returns Failure if all children return Failure. As soon as a child returns Success, the Selector will stop and return Success as well.")] + [ParadoxNotion.Design.Icon("Selector")] + [Color("b3ff7f")] + public class Selector : BTComposite + { + + [Tooltip("If true, then higher priority children are re-evaluated per tick and if either returns Success, then the Selector will immediately stop and return Success as well.")] + public bool dynamic; + [Tooltip("If true, the children order of execution is shuffled each time the Selector resets.")] + public bool random; + + private int lastRunningNodeIndex; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + for ( var i = dynamic ? 0 : lastRunningNodeIndex; i < outConnections.Count; i++ ) { + + status = outConnections[i].Execute(agent, blackboard); + + switch ( status ) { + case Status.Running: + + if ( dynamic && i < lastRunningNodeIndex ) { + for ( var j = i + 1; j <= lastRunningNodeIndex; j++ ) { + outConnections[j].Reset(); + } + } + + lastRunningNodeIndex = i; + return Status.Running; + + case Status.Success: + + if ( dynamic && i < lastRunningNodeIndex ) { + for ( var j = i + 1; j <= lastRunningNodeIndex; j++ ) { + outConnections[j].Reset(); + } + } + + return Status.Success; + } + } + + return Status.Failure; + } + + protected override void OnReset() { + lastRunningNodeIndex = 0; + if ( random ) { outConnections = outConnections.Shuffle(); } + } + + public override void OnChildDisconnected(int index) { + if ( index != 0 && index == lastRunningNodeIndex ) { + lastRunningNodeIndex--; + } + } + + public override void OnGraphStarted() { OnReset(); } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- + +#if UNITY_EDITOR + + public override string GetConnectionInfo(int index) { + return random && graph.isRunning ? index.ToString() : null; + } + + protected override void OnNodeGUI() { + if ( dynamic ) { GUILayout.Label("DYNAMIC"); } + if ( random ) { GUILayout.Label("RANDOM"); } + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs.meta new file mode 100644 index 0000000..675bcab --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Selector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa1c35ff60b06c74cb9102cc2babf462 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs new file mode 100644 index 0000000..f1d8619 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs @@ -0,0 +1,85 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Sequencer", 10)] + [Category("Composites")] + [Description("Executes its children in order and returns Success if all children return Success. As soon as a child returns Failure, the Sequencer will stop and return Failure as well.")] + [ParadoxNotion.Design.Icon("Sequencer")] + [Color("bf7fff")] + public class Sequencer : BTComposite + { + + [Tooltip("If true, then higher priority children are re-evaluated per tick and if either returns Failure, then the Sequencer will immediately stop and return Failure as well.")] + public bool dynamic; + [Tooltip("If true, the children order of execution is shuffled each time the Sequencer resets.")] + public bool random; + + private int lastRunningNodeIndex = 0; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + for ( var i = dynamic ? 0 : lastRunningNodeIndex; i < outConnections.Count; i++ ) { + + status = outConnections[i].Execute(agent, blackboard); + + switch ( status ) { + case Status.Running: + + if ( dynamic && i < lastRunningNodeIndex ) { + for ( var j = i + 1; j <= lastRunningNodeIndex; j++ ) { + outConnections[j].Reset(); + } + } + + lastRunningNodeIndex = i; + return Status.Running; + + case Status.Failure: + + if ( dynamic && i < lastRunningNodeIndex ) { + for ( var j = i + 1; j <= lastRunningNodeIndex; j++ ) { + outConnections[j].Reset(); + } + } + + return Status.Failure; + } + } + + return Status.Success; + } + + protected override void OnReset() { + lastRunningNodeIndex = 0; + if ( random ) { outConnections = outConnections.Shuffle(); } + } + + public override void OnChildDisconnected(int index) { + if ( index != 0 && index == lastRunningNodeIndex ) { + lastRunningNodeIndex--; + } + } + + public override void OnGraphStarted() { OnReset(); } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override string GetConnectionInfo(int index) { + return random && graph.isRunning ? index.ToString() : null; + } + + protected override void OnNodeGUI() { + if ( dynamic ) { GUILayout.Label("DYNAMIC"); } + if ( random ) { GUILayout.Label("RANDOM"); } + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs.meta new file mode 100644 index 0000000..f998d1c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Sequencer.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bafebe0850f5ea84eb87e77c674123e8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs new file mode 100644 index 0000000..7e1d5f7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs @@ -0,0 +1,32 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Step Sequencer")] + [Category("Composites")] + [Description("In comparison to a normal Sequencer which executes all its children until one fails, Step Sequencer executes its children one-by-one per Step Sequencer execution. The executed child status is returned regardless of Success or Failure.")] + [ParadoxNotion.Design.Icon("StepIterator")] + [Color("bf7fff")] + public class StepIterator : BTComposite + { + + private int current; + + public override void OnGraphStarted() { + current = 0; + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + current = current % outConnections.Count; + return outConnections[current].Execute(agent, blackboard); + } + + protected override void OnReset() { + current++; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs.meta new file mode 100644 index 0000000..ea51b35 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/StepIterator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1beecc40e55bf82488985475900341fe +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs new file mode 100644 index 0000000..20ba5a3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs @@ -0,0 +1,137 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using NodeCanvas.Framework.Internal; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Composites")] + [Description("Executes one child based on the provided int or enum case and returns its status. This is a useful node to create state-like behaviours.")] + [ParadoxNotion.Design.Icon("IndexSwitcher")] + [Color("b3ff7f")] + public class Switch : BTComposite + { + + public enum CaseSelectionMode + { + IndexBased = 0, + EnumBased = 1 + } + + public enum OutOfRangeMode + { + ReturnFailure, + LoopIndex + } + + [Tooltip("If true and the 'case' change while a child is running, that child will immediately be interrupted and the new child will be executed.")] + public bool dynamic; + [Tooltip("The selection mode used.")] + public CaseSelectionMode selectionMode = CaseSelectionMode.IndexBased; + + [ShowIf("selectionMode", 0)] + public BBParameter intCase; + [ShowIf("selectionMode", 0)] + public OutOfRangeMode outOfRangeMode = OutOfRangeMode.LoopIndex; + + [ShowIf("selectionMode", 1), BlackboardOnly] + public BBObjectParameter enumCase = new BBObjectParameter(typeof(System.Enum)); + private Dictionary enumCasePairing; + + private int current; + private int runningIndex; + + public override void OnGraphStarted() { + if ( selectionMode == CaseSelectionMode.EnumBased ) { + var enumValue = enumCase.value; + if ( enumValue != null ) { + enumCasePairing = new Dictionary(); + var enumValues = System.Enum.GetValues(enumValue.GetType()); + for ( var i = 0; i < enumValues.Length; i++ ) { + enumCasePairing[(int)enumValues.GetValue(i)] = i; + } + } + } + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( outConnections.Count == 0 ) { + return Status.Optional; + } + + if ( status == Status.Resting || dynamic ) { + + if ( selectionMode == CaseSelectionMode.IndexBased ) { + current = intCase.value; + if ( outOfRangeMode == OutOfRangeMode.LoopIndex ) { + current = Mathf.Abs(current) % outConnections.Count; + } + + } else { + current = enumCasePairing[(int)enumCase.value]; + } + + if ( runningIndex != current ) { + outConnections[runningIndex].Reset(); + } + + if ( current < 0 || current >= outConnections.Count ) { + return Status.Failure; + } + } + + status = outConnections[current].Execute(agent, blackboard); + + if ( status == Status.Running ) { + runningIndex = current; + } + + return status; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override string GetConnectionInfo(int i) { + if ( selectionMode == CaseSelectionMode.EnumBased ) { + if ( enumCase.value == null ) { + return "Null Enum".FormatError(); + } + var enumNames = System.Enum.GetNames(enumCase.value.GetType()); + if ( i >= enumNames.Length ) { + return "Never".FormatError(); + } + return enumNames[i]; + } + return i.ToString(); + } + + protected override void OnNodeGUI() { + if ( dynamic ) { + GUILayout.Label("DYNAMIC"); + } + GUILayout.Label(selectionMode == CaseSelectionMode.IndexBased ? ( "Current = " + intCase.ToString() ) : enumCase.ToString()); + } + + protected override void OnNodeInspectorGUI() { + base.OnNodeInspectorGUI(); + if ( selectionMode == CaseSelectionMode.EnumBased ) { + if ( enumCase.value != null ) { + GUILayout.BeginVertical("box"); + foreach ( var s in System.Enum.GetNames(enumCase.value.GetType()) ) { + GUILayout.Label(s); + } + GUILayout.EndVertical(); + } + } + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs.meta new file mode 100644 index 0000000..3e610fb --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Composites/Switch.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3c9285b12215614d98d6497ad391e78 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators.meta new file mode 100644 index 0000000..5d23016 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: ad02d7f1f3402ef4083d1af9260f390e +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs new file mode 100644 index 0000000..c1a5b7c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs @@ -0,0 +1,87 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Conditional")] + [Category("Decorators")] + [Description("Executes and returns the child status if the condition is true. Returns the specified status if the condition is or becomes false. If Dynamic is enabled and the condition becomes false while the child node is Running, the child node will be interrupted.")] + [ParadoxNotion.Design.Icon("Accessor")] + public class ConditionalEvaluator : BTDecorator, ITaskAssignable + { + + [Name("Dynamic"), Tooltip("If enabled, the condition is re-evaluated per tick and the child is interrupted if the condition becomes false.")] + public bool isDynamic; + [Tooltip("The status that will be returned if the assigned condition is or becomes false.")] + public FinalStatus conditionFailReturn = FinalStatus.Failure; + + [SerializeField] + private ConditionTask _condition; + private bool accessed; + + public Task task { + get { return condition; } + set { condition = (ConditionTask)value; } + } + + private ConditionTask condition { + get { return _condition; } + set { _condition = value; } + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( condition == null ) { + return decoratedConnection.Execute(agent, blackboard); + } + + if ( status == Status.Resting ) { + condition.Enable(agent, blackboard); + } + + if ( isDynamic ) { + + if ( condition.Check(agent, blackboard) ) { + return decoratedConnection.Execute(agent, blackboard); + } + decoratedConnection.Reset(); + return (Status)conditionFailReturn; + + } else { + + if ( status != Status.Running ) { + accessed = condition.Check(agent, blackboard); + } + + return accessed ? decoratedConnection.Execute(agent, blackboard) : (Status)conditionFailReturn; + } + } + + protected override void OnReset() { + condition?.Disable(); + accessed = false; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + if ( isDynamic ) { GUILayout.Label("DYNAMIC"); } + } + + protected override void OnNodeInspectorGUI() { + base.OnNodeInspectorGUI(); + EditorUtils.Separator(); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs.meta new file mode 100644 index 0000000..d29a662 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/ConditionalEvaluator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77a4b51944584ae429faf6c94c84bc6c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs new file mode 100644 index 0000000..8626939 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs @@ -0,0 +1,67 @@ +using System.Collections; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Decorators")] + [Description("Limits the access of its child every specific amount of time.")] + [ParadoxNotion.Design.Icon("Filter")] + public class Cooldown : BTDecorator + { + + [Tooltip("The cooldown time.")] + public BBParameter coolDownTime = 5f; + [Tooltip("The status that will be returned when cooling down.")] + public FinalStatus coolingStatus = FinalStatus.Optional; + + private float currentTime; + + public override void OnGraphStoped() { + currentTime = 0; + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( currentTime > 0 ) { + return (Status)coolingStatus; + } + + status = decoratedConnection.Execute(agent, blackboard); + if ( status == Status.Success || status == Status.Failure ) { + StartCoroutine(Internal_Cooldown()); + } + + return status; + } + + + IEnumerator Internal_Cooldown() { + currentTime = coolDownTime.value; + while ( currentTime > 0 ) { + yield return null; + currentTime -= Time.deltaTime; + } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Space(25); + var pRect = new Rect(5, GUILayoutUtility.GetLastRect().y, rect.width - 10, 20); + UnityEditor.EditorGUI.ProgressBar(pRect, currentTime / coolDownTime.value, currentTime > 0 ? "Cooling..." : "Cooled"); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs.meta new file mode 100644 index 0000000..0710ba2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Cooldown.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc14dabecb6bb41408f227653a048550 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs new file mode 100644 index 0000000..ba13ee1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs @@ -0,0 +1,25 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Fail", -2)] + [Category("Decorators")] + [Description("Force return Failure status.")] + [ParadoxNotion.Design.Icon("Failure")] + public class Fail : BTDecorator + { + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { return Status.Failure; } + if ( status == Status.Resting ) { decoratedConnection.Reset(); } + + status = decoratedConnection.Execute(agent, blackboard); + return status == Status.Running ? Status.Running : Status.Failure; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs.meta new file mode 100644 index 0000000..399c1e4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Fail.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65d52831d3f142a4c89f3eaf51ec58b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs new file mode 100644 index 0000000..d144220 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs @@ -0,0 +1,68 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using ParadoxNotion.Serialization.FullSerializer; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Guard")] + [Category("Decorators")] + [ParadoxNotion.Design.Icon("Shield")] + [Description("Protects the decorated child from running if another Guard with the same token is already guarding (Running) that token. The token is a blackboard variable, therefore the scope of the guard depends on the scope of the variable (eg graph scope if used with a graph blackboard variable, gameobject scope for all gameobject's behaviour trees if used with a gameobject blackboard variable, or even global scope if used with a global blackboard variable).\n\nThe token variable should only be used for this reason and start at false.")] + public class Guard : BTDecorator + { + [System.Serializable, fsAutoInstance] + public class GuardToken + { + public Guard currentGuard { get; set; } + } + + public enum GuardMode + { + Failure = 0, + Success = 1, + Optional = 5, + RunningUntilReleased = 2, + } + + [BlackboardOnly, Tooltip("The variable to use as a guard token. ( You can simply 'Create New' from the dropdown )")] + public BBParameter token; + [Tooltip("The status to return in case the token is already guarded by another Guard.")] + public GuardMode guardedStatus = GuardMode.Failure; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( token.value.currentGuard == null ) { + token.value.currentGuard = this; + } + + if ( token.value.currentGuard == this ) { + return decoratedConnection.Execute(agent, blackboard); + } + + return (Status)guardedStatus; + } + + protected override void OnReset() { + if ( token.value.currentGuard == this ) { + token.value.currentGuard = null; + } + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Label(string.Format("{0}", token)); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs.meta new file mode 100644 index 0000000..d5c9be4 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Guard.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19fc82817a5cfd94f99129e7f7a6f879 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs new file mode 100644 index 0000000..bc3c4e2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs @@ -0,0 +1,126 @@ +using System.Collections; +using NodeCanvas.Framework; +using NodeCanvas.Framework.Internal; +using ParadoxNotion.Design; +using ParadoxNotion; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Iterate")] + [Category("Decorators")] + [Description("Iterates a list and executes its child once for each element in that list. Keeps iterating until the Termination Policy is met or until the whole list is iterated, in which case the last iteration child status is returned.")] + [ParadoxNotion.Design.Icon("List")] + public class Iterator : BTDecorator + { + + public enum TerminationConditions + { + None, + FirstSuccess, + FirstFailure + } + + [RequiredField] + [BlackboardOnly] + [Tooltip("The list to iterate.")] + public BBParameter targetList; + + [BlackboardOnly] + [Name("Current Element")] + [Tooltip("Store the currently iterated list element in a variable.")] + public BBObjectParameter current; + + [BlackboardOnly] + [Name("Current Index")] + [Tooltip("Store the currently iterated list index in a variable.")] + public BBParameter storeIndex; + + [Name("Termination Policy"), Tooltip("The condition for when to terminate the iteration and return status.")] + public TerminationConditions terminationCondition = TerminationConditions.None; + + [Tooltip("The maximum allowed iterations. Leave at -1 to iterate the whole list.")] + public BBParameter maxIteration = -1; + + [Tooltip("Should the iteration start from the begining after the Iterator node resets?")] + public bool resetIndex = true; + + private int currentIndex; + + private IList list => targetList?.value; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( list == null || list.Count == 0 ) { + return Status.Failure; + } + + for ( var i = currentIndex; i < list.Count; i++ ) { + + current.value = list[i]; + storeIndex.value = i; + status = decoratedConnection.Execute(agent, blackboard); + + if ( status == Status.Success && terminationCondition == TerminationConditions.FirstSuccess ) { + return Status.Success; + } + + if ( status == Status.Failure && terminationCondition == TerminationConditions.FirstFailure ) { + return Status.Failure; + } + + if ( status == Status.Running ) { + currentIndex = i; + return Status.Running; + } + + + if ( currentIndex == list.Count - 1 || currentIndex == maxIteration.value - 1 ) { + if ( resetIndex ) { currentIndex = 0; } + return status; + } + + decoratedConnection.Reset(); + currentIndex++; + } + + return Status.Running; + } + + + protected override void OnReset() { + if ( resetIndex ) { currentIndex = 0; } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + + GUILayout.Label("For Each\t" + current + "\nIn\t" + targetList, Styles.leftLabel); + if ( terminationCondition != TerminationConditions.None ) { + GUILayout.Label("Break on " + terminationCondition.ToString()); + } + + if ( Application.isPlaying ) { + GUILayout.Label("Index: " + currentIndex.ToString() + " / " + ( list != null && list.Count != 0 ? ( list.Count - 1 ).ToString() : "?" )); + } + } + + protected override void OnNodeInspectorGUI() { + DrawDefaultInspector(); + var argType = targetList.refType?.GetEnumerableElementType(); + if ( current.varType != argType ) { current.SetType(argType); } + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs.meta new file mode 100644 index 0000000..3c5b7cc --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Iterator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3255184fe8922814dbb5260dc3bd07dc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs new file mode 100644 index 0000000..fad928f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs @@ -0,0 +1,61 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Limit")] + [Category("Decorators")] + [Description("Limits the access of its child a specific number of times.")] + [ParadoxNotion.Design.Icon("Filter")] + public class Limiter : BTDecorator + { + + [Name("Max Times"), Tooltip("The max ammount of times to allow the child to execute until the tree is completely restarted.")] + public BBParameter maxCount = 1; + [Name("Increase Count Policy"), Tooltip("Only increase count if the selected status is returned from the child.")] + public BehaviourPolicy policy = BehaviourPolicy.OnSuccessOrFailure; + [Tooltip("The Status that will be returned when the max number of times has been reached.")] + public FinalStatus limitedStatus = FinalStatus.Optional; + + private int executedCount; + + public override void OnGraphStoped() { + executedCount = 0; + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( executedCount >= maxCount.value ) { + return (Status)limitedStatus; + } + + status = decoratedConnection.Execute(agent, blackboard); + if + ( + ( status == Status.Success && policy == BehaviourPolicy.OnSuccess ) || + ( status == Status.Failure && policy == BehaviourPolicy.OnFailure ) || + ( ( status == Status.Success || status == Status.Failure ) && policy == BehaviourPolicy.OnSuccessOrFailure ) + ) { + executedCount++; + } + + return status; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Label(executedCount + " / " + maxCount.value); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs.meta new file mode 100644 index 0000000..4ef5aa7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Limiter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db7201f9aaadbd642ada5763cf21264b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs new file mode 100644 index 0000000..e58305e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using NodeCanvas.Framework; +using ParadoxNotion.Design; + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Merge", -1000)] + [Description("Merge can accept multiple input connections and thus possible to re-use branches or leaf nodes from multiple parents.")] + [Category("Decorators")] + [ParadoxNotion.Design.Icon("Merge")] + public class Merge : BTDecorator + { + + public override int maxInConnections => -1; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + if ( decoratedConnection == null ) { return Status.Optional; } + if ( status != Status.Running ) { decoratedConnection.Reset(); } + return decoratedConnection.Execute(agent, blackboard); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs.meta new file mode 100644 index 0000000..6c7573c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Merge.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 586c7107d4ae1b346bf183aa14da0a85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs new file mode 100644 index 0000000..cb74859 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs @@ -0,0 +1,88 @@ +using UnityEngine; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using ParadoxNotion; + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Decorators")] + [ParadoxNotion.Design.Icon("Eye")] + [Description("Monitors the decorated child for a returned status and executes an action when that is the case. The final status returned to the parent can either be the original decorated child status, or the new decorator action status.")] + public class Monitor : BTDecorator, ITaskAssignable + { + + public enum ReturnStatusMode + { + OriginalDecoratedChildStatus, + NewDecoratorActionStatus, + } + + [Name("Monitor"), Tooltip("The Status to monitor for.")] + public BehaviourPolicy monitorMode; + [Name("Return"), Tooltip("The Status to return after (and if) the Action is executed.")] + public ReturnStatusMode returnMode; + + private Status decoratorActionStatus; + + [SerializeField] + private ActionTask _action; + + public ActionTask action { + get { return _action; } + set { _action = value; } + } + + public Task task { + get { return action; } + set { action = (ActionTask)value; } + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + var newChildStatus = decoratedConnection.Execute(agent, blackboard); + if ( action == null ) { + return newChildStatus; + } + + if ( status != newChildStatus ) { + var execute = false; + execute |= newChildStatus == Status.Success && monitorMode == BehaviourPolicy.OnSuccess; + execute |= newChildStatus == Status.Failure && monitorMode == BehaviourPolicy.OnFailure; + execute |= monitorMode == BehaviourPolicy.OnSuccessOrFailure && newChildStatus != Status.Running; + + if ( execute ) { + decoratorActionStatus = action.Execute(agent, blackboard); + if ( decoratorActionStatus == Status.Running ) { + return Status.Running; + } + } + } + + return returnMode == ReturnStatusMode.NewDecoratorActionStatus && decoratorActionStatus != Status.Resting ? decoratorActionStatus : newChildStatus; + } + + protected override void OnReset() { + if ( action != null ) { + action.EndAction(null); + decoratorActionStatus = Status.Resting; + } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Label(string.Format("[{0}]", monitorMode.ToString().SplitCamelCase())); + } + +#endif + ///---------------------------------------UNITY EDITOR------------------------------------------- + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs.meta new file mode 100644 index 0000000..d3f65a8 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Monitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bcfd9a49dcd36a945980913e16ded47c +timeCreated: 1495927811 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs new file mode 100644 index 0000000..57a6652 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs @@ -0,0 +1,25 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Optional", -3)] + [Category("Decorators")] + [Description("Force return Optional status. Thus making it optional to the parent node in regards to what status is returned. This has the same effect as disabling the node, but instead it executes normaly.")] + [ParadoxNotion.Design.Icon("UpwardsArrow")] + public class Optional : BTDecorator + { + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { return Status.Optional; } + if ( status == Status.Resting ) { decoratedConnection.Reset(); } + + status = decoratedConnection.Execute(agent, blackboard); + return status == Status.Running ? Status.Running : Status.Optional; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs.meta new file mode 100644 index 0000000..cf1a78f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Optional.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 118d0d2c1e83b3140be8151b09bb0bbc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs new file mode 100644 index 0000000..750cabf --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs @@ -0,0 +1,99 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Repeat")] + [Category("Decorators")] + [Description("Repeats the child either x times, or until it returns the specified status, or forever.")] + [ParadoxNotion.Design.Icon("Repeat")] + public class Repeater : BTDecorator + { + + public enum RepeaterMode + { + RepeatTimes = 0, + RepeatUntil = 1, + RepeatForever = 2 + } + + public RepeaterMode repeaterMode = RepeaterMode.RepeatTimes; + [ShowIf("repeaterMode", 0)] + public BBParameter repeatTimes = 1; + [ShowIf("repeaterMode", 1)] + public BooleanStatus repeatUntilStatus = BooleanStatus.Success; + + private int currentIteration = 1; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + if ( decoratedConnection.status != Status.Running ) { + decoratedConnection.Reset(); + } + + status = decoratedConnection.Execute(agent, blackboard); + + switch ( status ) { + case Status.Resting: + return Status.Running; + case Status.Running: + return Status.Running; + } + + switch ( repeaterMode ) { + case RepeaterMode.RepeatTimes: + + if ( currentIteration >= repeatTimes.value ) { + return status; + } + + currentIteration++; + break; + + case RepeaterMode.RepeatUntil: + + if ( (int)status == (int)repeatUntilStatus ) { + return status; + } + break; + } + + return Status.Running; + } + + protected override void OnReset() { + currentIteration = 1; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + + if ( repeaterMode == RepeaterMode.RepeatTimes ) { + GUILayout.Label(repeatTimes + " Times"); + if ( Application.isPlaying ) + GUILayout.Label("Iteration: " + currentIteration.ToString()); + + } else if ( repeaterMode == RepeaterMode.RepeatUntil ) { + + GUILayout.Label("Until " + repeatUntilStatus); + + } else { + + GUILayout.Label("Repeat Forever"); + } + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs.meta new file mode 100644 index 0000000..eb4ea2d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Repeater.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d74567d471af51f46a176cd123b68d72 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs new file mode 100644 index 0000000..fe3609c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs @@ -0,0 +1,41 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Override Agent")] + [Category("Decorators")] + [Description("Set another agent for this branch and onwards. All nodes under this will be executed with the new agent wherever 'Self' is used. You can also use this decorator to revert back to the original graph agent.")] + [ParadoxNotion.Design.Icon("Set")] + public class Setter : BTDecorator + { + + [Tooltip("If enabled, will revert back to the original graph agent.")] + public bool revertToOriginal; + [ShowIf("revertToOriginal", 0), Tooltip("The new agent to use.")] + public BBParameter newAgent; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + agent = revertToOriginal ? graphAgent : newAgent.value.transform; + return decoratedConnection.Execute(agent, blackboard); + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Label(string.Format("Self = {0}", revertToOriginal ? "Original" : newAgent.ToString())); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs.meta new file mode 100644 index 0000000..479666a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Setter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f79712c85c72df64cb10e3dc32389aaa +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs new file mode 100644 index 0000000..ea127cf --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs @@ -0,0 +1,25 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Succeed", -1)] + [Category("Decorators")] + [Description("Force return Success status.")] + [ParadoxNotion.Design.Icon("Success")] + public class Succeed : BTDecorator + { + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { return Status.Success; } + if ( status == Status.Resting ) { decoratedConnection.Reset(); } + + status = decoratedConnection.Execute(agent, blackboard); + return status == Status.Running ? Status.Running : Status.Success; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs.meta new file mode 100644 index 0000000..4d954fd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Succeed.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 207b710c5a1bec34b9466eea62a66842 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs new file mode 100644 index 0000000..f089cf5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs @@ -0,0 +1,53 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Decorators")] + [Description("Interupts the decorated child node and returns the specified status if the child node is still Running after the timeout period. Otherwise the child node status is returned.")] + [ParadoxNotion.Design.Icon("Timeout")] + public class Timeout : BTDecorator + { + + [Tooltip("The timeout period in seconds.")] + public BBParameter timeout = 1; + + [Tooltip("The Status that will be returned if timeout occurs.")] + public FinalStatus timeoutStatus = FinalStatus.Failure; + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + return Status.Optional; + } + + status = decoratedConnection.Execute(agent, blackboard); + if ( status == Status.Running ) { + if ( elapsedTime >= timeout.value ) { + decoratedConnection.Reset(); + return (Status)timeoutStatus; + } + } + + return status; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Space(25); + var pRect = new Rect(5, GUILayoutUtility.GetLastRect().y, rect.width - 10, 20); + var t = 1 - ( elapsedTime / timeout.value ); + UnityEditor.EditorGUI.ProgressBar(pRect, t, elapsedTime > 0 ? string.Format("({0})", elapsedTime.ToString("0.0")) : "Ready"); + } + +#endif + ///---------------------------------------------------------------------------------------------- + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs.meta new file mode 100644 index 0000000..770ee94 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/Timeout.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 117e6954834de844b80b3610a29e4867 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs new file mode 100644 index 0000000..9264eb5 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs @@ -0,0 +1,65 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Category("Decorators")] + [Description("Returns Running until the assigned condition becomes true. When true, the decorated child is executed and its status returned.")] + [ParadoxNotion.Design.Icon("Halt")] + public class WaitUntil : BTDecorator, ITaskAssignable + { + + [SerializeField] + private ConditionTask _condition; + private bool accessed; + + public Task task { + get { return condition; } + set { condition = (ConditionTask)value; } + } + + private ConditionTask condition { + get { return _condition; } + set { _condition = value; } + } + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( decoratedConnection == null ) { + //this part is so that Wait node can be used as a leaf too, by user request + if ( condition != null ) { + if ( status == Status.Resting ) { + condition.Enable(agent, blackboard); + } + return condition.Check(agent, blackboard) ? Status.Success : Status.Running; + } + //----- + return Status.Optional; + } + + if ( condition == null ) { + return decoratedConnection.Execute(agent, blackboard); + } + + if ( status == Status.Resting ) { + condition.Enable(agent, blackboard); + } + + if ( accessed ) return decoratedConnection.Execute(agent, blackboard); + + if ( condition.Check(agent, blackboard) ) { + accessed = true; + } + + return accessed ? decoratedConnection.Execute(agent, blackboard) : Status.Running; + } + + protected override void OnReset() { + condition?.Disable(); + accessed = false; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs.meta new file mode 100644 index 0000000..e9e4360 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Decorators/WaitUntil.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1523063433aecea4cb4f75728ac09886 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs.meta new file mode 100644 index 0000000..32d4027 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 07733885d919a884faf9690060c0d1d7 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs new file mode 100644 index 0000000..90a84d2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs @@ -0,0 +1,52 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Action")] + [Description("Executes an action and returns Success or Failure when the action is finished.\nReturns Running until the action is finished.")] + [ParadoxNotion.Design.Icon("Action")] + // [Color("ff6d53")] + public class ActionNode : BTNode, ITaskAssignable + { + + [SerializeField] + private ActionTask _action; + + public Task task { + get { return action; } + set { action = (ActionTask)value; } + } + + public ActionTask action { + get { return _action; } + set { _action = value; } + } + + public override string name => base.name.ToUpper(); + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( action == null ) { + return Status.Optional; + } + + if ( status == Status.Resting || status == Status.Running ) { + return action.Execute(agent, blackboard); + } + + return status; + } + + protected override void OnReset() { + action?.EndAction(null); + } + + public override void OnGraphPaused() { + action?.Pause(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs.meta new file mode 100644 index 0000000..a1e948b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ActionNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4363f6a82c42c2f4db123b8c19215466 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs new file mode 100644 index 0000000..656e996 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs @@ -0,0 +1,47 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Condition")] + [Description("Checks a condition and returns Success or Failure.")] + [ParadoxNotion.Design.Icon("Condition")] + // [Color("ff6d53")] + public class ConditionNode : BTNode, ITaskAssignable + { + + [SerializeField] + private ConditionTask _condition; + + public Task task { + get { return condition; } + set { condition = (ConditionTask)value; } + } + + public ConditionTask condition { + get { return _condition; } + set { _condition = value; } + } + + public override string name => base.name.ToUpper(); + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + if ( condition == null ) { + return Status.Optional; + } + + if ( status == Status.Resting ) { + condition.Enable(agent, blackboard); + } + + return condition.Check(agent, blackboard) ? Status.Success : Status.Failure; + } + + protected override void OnReset() { + condition?.Disable(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs.meta new file mode 100644 index 0000000..5818dfd --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/ConditionNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebacb7ee0473cac4a9a9de550ee34c08 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs new file mode 100644 index 0000000..0084353 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs @@ -0,0 +1,53 @@ +using NodeCanvas.DialogueTrees; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Sub Dialogue")] + [Description("Executes a sub Dialogue Tree. Returns Running while the sub Dialogue Tree is active. You can Finish the Dialogue Tree with the 'Finish' node and return Success or Failure.")] + [ParadoxNotion.Design.Icon("Dialogue")] + [DropReferenceType(typeof(DialogueTree))] + public class NestedDT : BTNodeNested + { + + [SerializeField, ExposeField, Name("Sub Tree")] + private BBParameter _nestedDialogueTree = null; + + public override DialogueTree subGraph { get { return _nestedDialogueTree.value; } set { _nestedDialogueTree.value = value; } } + public override BBParameter subGraphParameter => _nestedDialogueTree; + + // + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( subGraph == null || subGraph.primeNode == null ) { + return Status.Optional; + } + + if ( status == Status.Resting ) { + status = Status.Running; + this.TryStartSubGraph(agent, OnDLGFinished); + } + + if ( status == Status.Running ) { + currentInstance.UpdateGraph(this.graph.deltaTime); + } + + return status; + } + + void OnDLGFinished(bool success) { + if ( status == Status.Running ) { + status = success ? Status.Success : Status.Failure; + } + } + + protected override void OnReset() { + currentInstance?.Stop(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs.meta new file mode 100644 index 0000000..d785432 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedDT.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1bc8dfa829907d4587851859ad68a5b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs new file mode 100644 index 0000000..1025dd7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs @@ -0,0 +1,81 @@ +using System.Linq; +using NodeCanvas.Framework; +using NodeCanvas.StateMachines; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Sub FSM")] + [Description("Executes a sub FSM. Returns Running while the sub FSM is active. If a Success or Failure State is selected, then it will return Success or Failure as soon as the sub FSM enters that state at which point the sub FSM will also be stoped. If the sub FSM ends otherwise, this node will return Success.")] + [ParadoxNotion.Design.Icon("FSM")] + [DropReferenceType(typeof(FSM))] + public class NestedFSM : BTNodeNested + { + + [SerializeField, ExposeField, Name("Sub FSM")] + private BBParameter _nestedFSM = null; + + [HideInInspector] public string successState; + [HideInInspector] public string failureState; + + public override FSM subGraph { get { return _nestedFSM.value; } set { _nestedFSM.value = value; } } + public override BBParameter subGraphParameter => _nestedFSM; + + ///---------------------------------------------------------------------------------------------- + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( subGraph == null || subGraph.primeNode == null ) { + return Status.Optional; + } + + if ( status == Status.Resting ) { + status = Status.Running; + this.TryStartSubGraph(agent, OnFSMFinish); + } + + if ( status == Status.Running ) { + currentInstance.UpdateGraph(this.graph.deltaTime); + } + + if ( !string.IsNullOrEmpty(successState) && currentInstance.currentStateName == successState ) { + currentInstance.Stop(true); + return Status.Success; + } + + if ( !string.IsNullOrEmpty(failureState) && currentInstance.currentStateName == failureState ) { + currentInstance.Stop(false); + return Status.Failure; + } + + return status; + } + + void OnFSMFinish(bool success) { + if ( status == Status.Running ) { + status = success ? Status.Success : Status.Failure; + } + } + + protected override void OnReset() { + currentInstance?.Stop(); + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + protected override void OnNodeInspectorGUI() { + base.OnNodeInspectorGUI(); + if ( subGraph != null ) { + successState = EditorUtils.Popup("Success State", successState, subGraph.GetStateNames()); + failureState = EditorUtils.Popup("Failure State", failureState, subGraph.GetStateNames()); + } + } +#endif + ///---------------------------------------------------------------------------------------------- + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs.meta new file mode 100644 index 0000000..72b2b6e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/NestedFSM.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 029908fbea5cdb44eb8daab6ea1ce96d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs new file mode 100644 index 0000000..93202ad --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs @@ -0,0 +1,47 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.BehaviourTrees +{ + + [Name("Sub Tree")] + [Description("Executes a sub Behaviour Tree. The status of the root node in the SubTree will be returned.")] + [ParadoxNotion.Design.Icon("BT")] + [DropReferenceType(typeof(BehaviourTree))] + public class SubTree : BTNodeNested + { + + [SerializeField, ExposeField] + private BBParameter _subTree = null; + + public override BehaviourTree subGraph { get { return _subTree.value; } set { _subTree.value = value; } } + public override BBParameter subGraphParameter => _subTree; + + ///---------------------------------------------------------------------------------------------- + + protected override Status OnExecute(Component agent, IBlackboard blackboard) { + + if ( subGraph == null || subGraph.primeNode == null ) { + return Status.Optional; + } + + if ( status == Status.Resting ) { + this.TryStartSubGraph(agent); + } + + currentInstance.UpdateGraph(this.graph.deltaTime); + + if ( currentInstance.repeat && currentInstance.rootStatus != Status.Running ) { + this.TryReadAndUnbindMappedVariables(); + } + + return currentInstance.rootStatus; + } + + protected override void OnReset() { + currentInstance?.Stop(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs.meta new file mode 100644 index 0000000..fd21809 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/BehaviourTrees/Nodes/Leafs/SubTree.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81a47db377388e443b24ae90ce6a83c8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees.meta new file mode 100644 index 0000000..79d5c27 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 401468022ced6be409de4e26417b1357 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs new file mode 100644 index 0000000..f8e57c1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs @@ -0,0 +1,11 @@ +using NodeCanvas.Framework; + + +namespace NodeCanvas.DialogueTrees +{ + + public class DTConnection : Connection + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs.meta new file mode 100644 index 0000000..c1bceb7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTConnection.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: f681a39730ae5674fb66c8f78d455170 +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs new file mode 100644 index 0000000..a04bbb9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs @@ -0,0 +1,90 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + /// Base class for DialogueTree nodes that can live within a DialogueTree Graph. + abstract public class DTNode : Node + { + + [SerializeField] private string _actorName = DialogueTree.INSTIGATOR_NAME; + [SerializeField] private string _actorParameterID; + + public override string name { + get + { + if ( requireActorSelection ) { + if ( DLGTree.definedActorParameterNames.Contains(actorName) ) { + return string.Format("{0}", actorName); + } + return string.Format("* {0} *", _actorName); + } + return base.name; + } + } + + virtual public bool requireActorSelection { get { return true; } } + public override int maxInConnections { get { return -1; } } + public override int maxOutConnections { get { return 1; } } + sealed public override System.Type outConnectionType { get { return typeof(DTConnection); } } + sealed public override bool allowAsPrime { get { return true; } } + sealed public override bool canSelfConnect { get { return false; } } + sealed public override Alignment2x2 commentsAlignment { get { return Alignment2x2.Right; } } + sealed public override Alignment2x2 iconAlignment { get { return Alignment2x2.Bottom; } } + + protected DialogueTree DLGTree { + get { return (DialogueTree)graph; } + } + + ///The key name actor parameter to be used for this node + public string actorName { + get + { + var result = DLGTree.GetParameterByID(_actorParameterID); + return result != null ? result.name : _actorName; + } + private set + { + if ( _actorName != value && !string.IsNullOrEmpty(value) ) { + _actorName = value; + var param = DLGTree.GetParameterByName(value); + _actorParameterID = param != null ? param.ID : null; + } + } + } + + ///The DialogueActor that will execute the node + public IDialogueActor finalActor { + get + { + var result = DLGTree.GetActorReferenceByID(_actorParameterID); + return result != null ? result : DLGTree.GetActorReferenceByName(_actorName); + } + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeInspectorGUI() { + if ( requireActorSelection ) { + GUI.backgroundColor = Colors.lightBlue; + actorName = EditorUtils.Popup(actorName, DLGTree.definedActorParameterNames); + GUI.backgroundColor = Color.white; + } + base.OnNodeInspectorGUI(); + } + + protected override UnityEditor.GenericMenu OnContextMenu(UnityEditor.GenericMenu menu) { + menu.AddItem(new GUIContent("Breakpoint"), isBreakpoint, () => { isBreakpoint = !isBreakpoint; }); + return menu; + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs.meta new file mode 100644 index 0000000..dea60b3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNode.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 59103b2c12660b043b15b0ee459da1a7 +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs new file mode 100644 index 0000000..5057e5d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; +using NodeCanvas.Framework.Internal; + +namespace NodeCanvas.DialogueTrees +{ + [Category("SubGraphs")] + [Color("ffe4e1")] + abstract public class DTNodeNested : DTNode, IGraphAssignable where T : Graph + { + [SerializeField] private List _variablesMap; + + abstract public T subGraph { get; set; } + abstract public BBParameter subGraphParameter { get; } + + public T currentInstance { get; set; } + public Dictionary instances { get; set; } + public List variablesMap { get { return _variablesMap; } set { _variablesMap = value; } } + + Graph IGraphAssignable.subGraph { get { return subGraph; } set { subGraph = (T)value; } } + Graph IGraphAssignable.currentInstance { get { return currentInstance; } set { currentInstance = (T)value; } } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs.meta new file mode 100644 index 0000000..487a47e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DTNodeNested.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 70cdf8977a971ee47a8430c3c38cf92f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs new file mode 100644 index 0000000..256f1ca --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs @@ -0,0 +1,65 @@ +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + /// A DialogueActor Component. + [AddComponentMenu("NodeCanvas/Dialogue Actor")] + public class DialogueActor : MonoBehaviour, IDialogueActor + { + + [SerializeField] + protected string _name; + [SerializeField] + protected Texture2D _portrait; + [SerializeField] + protected Color _dialogueColor = Color.white; + [SerializeField] + protected Vector3 _dialogueOffset; + + private Sprite _portraitSprite; + + new public string name { + get { return _name; } + } + + public Texture2D portrait { + get { return _portrait; } + } + + public Sprite portraitSprite { + get + { + if ( _portraitSprite == null && portrait != null ) + _portraitSprite = Sprite.Create(portrait, new Rect(0, 0, portrait.width, portrait.height), new Vector2(0.5f, 0.5f)); + return _portraitSprite; + } + } + + public Color dialogueColor { + get { return _dialogueColor; } + } + + public Vector3 dialoguePosition { + get { return transform.TransformPoint(_dialogueOffset); } + } + + //IDialogueActor.transform is implemented by inherited MonoBehaviour.transform + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + void Reset() { + _name = gameObject.name; + } + + void OnDrawGizmos() { + Gizmos.DrawLine(transform.position, dialoguePosition); + } + +#endif + } +} diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs.meta new file mode 100644 index 0000000..3ae084c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActor.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 3d71fb7c52372e244baf2e69a9d0d116 +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs new file mode 100644 index 0000000..0492fa0 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs @@ -0,0 +1,32 @@ +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + /// A DialogueActor Asset. + [CreateAssetMenu(menuName = "ParadoxNotion/NodeCanvas/Dialogue Actor")] + public class DialogueActorAsset : ScriptableObject, IDialogueActor + { + [SerializeField] protected string _name; + [SerializeField] protected Texture2D _portrait; + [SerializeField] protected Color _dialogueColor = Color.white; + [SerializeField] protected Vector3 _dialogueOffset; + + private Sprite _portraitSprite; + + new public string name => _name; + public Texture2D portrait => _portrait; + public Color dialogueColor => _dialogueColor; + public Vector3 dialoguePosition => Vector3.zero; + public Transform transform => null; + public Sprite portraitSprite { + get + { + if ( _portraitSprite == null && portrait != null ) + _portraitSprite = Sprite.Create(portrait, new Rect(0, 0, portrait.width, portrait.height), new Vector2(0.5f, 0.5f)); + return _portraitSprite; + } + } + } +} diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs.meta new file mode 100644 index 0000000..91d69c2 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueActorAsset.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: c2ec6ea76fcc78b46b0f170b5cf8b8a2 +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs new file mode 100644 index 0000000..aaaf056 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; + + +namespace NodeCanvas.DialogueTrees +{ + + ///Send along with a OnSubtitlesRequest event. Holds info about the actor speaking, the statement that being said as well as a callback to be called when dialogue is done showing + public class SubtitlesRequestInfo + { + + ///The actor speaking + public IDialogueActor actor; + ///The statement said + public IStatement statement; + ///Call this to Continue the DialogueTree + public Action Continue; + + public SubtitlesRequestInfo(IDialogueActor actor, IStatement statement, Action callback) { + this.actor = actor; + this.statement = statement; + this.Continue = callback; + } + } + + ///Send along with a OnMultipleChoiceRequest event. Holds information of the options, time available as well as a callback to be called providing the selected option + public class MultipleChoiceRequestInfo + { + + ///The actor related. This is usually the actor that will also say the options + public IDialogueActor actor; + ///The available choice option. Key: The statement, Value: the child index of the option + public Dictionary options; + ///The available time for a choice + public float availableTime; + ///Should the previous statement be shown along the options? + public bool showLastStatement; + ///Call this with to select the option to continue with in the DialogueTree + public Action SelectOption; + + public MultipleChoiceRequestInfo(IDialogueActor actor, Dictionary options, float availableTime, bool showLastStatement, Action callback) { + this.actor = actor; + this.options = options; + this.availableTime = availableTime; + this.showLastStatement = showLastStatement; + this.SelectOption = callback; + } + + public MultipleChoiceRequestInfo(IDialogueActor actor, Dictionary options, float availableTime, Action callback) { + this.actor = actor; + this.options = options; + this.availableTime = availableTime; + this.SelectOption = callback; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs.meta new file mode 100644 index 0000000..ac7615f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueEventArguments.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 99be78178d3274c46b4d5dc851d694df +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI.meta new file mode 100644 index 0000000..7ae8701 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 39761394fbf3ea346a5e66e5798c11ae +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab new file mode 100644 index 0000000..8e7b71e --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab @@ -0,0 +1,836 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400000} + - component: {fileID: 22200000} + - component: {fileID: 11400000} + m_Layer: 5 + m_Name: Portrait + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 59.8, y: 58.326} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100000} + m_CullTransparentMesh: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400002} + - component: {fileID: 22200002} + - component: {fileID: 11400002} + m_Layer: 5 + m_Name: SubtitlesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224000012677293416} + - {fileID: 22451302} + - {fileID: 22400008} + - {fileID: 22400006} + - {fileID: 22400000} + m_Father: {fileID: 22400010} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 6.5} + m_SizeDelta: {x: -167, y: 69} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &22200002 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100002} + m_CullTransparentMesh: 0 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7607843} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400004} + - component: {fileID: 22200004} + - component: {fileID: 11400004} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400004 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400014} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100004} + m_CullTransparentMesh: 0 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Choice +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400006} + - component: {fileID: 22200006} + - component: {fileID: 11400006} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400006 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100006} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 14.7} + m_SizeDelta: {x: 267, y: 29.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100006} + m_CullTransparentMesh: 0 +--- !u!114 &11400006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8993915, g: 1, b: 0.5441177, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Actor Name +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400008} + - component: {fileID: 22200008} + - component: {fileID: 11400008} + m_Layer: 5 + m_Name: Speech + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400008 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100008} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 74.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200008 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100008} + m_CullTransparentMesh: 0 +--- !u!114 &11400008 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'subtitles + + subtitles' +--- !u!1 &100010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400010} + - component: {fileID: 22300000} + - component: {fileID: 11400012} + - component: {fileID: 11400010} + m_Layer: 5 + m_Name: '@DialogueUGUI' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400010 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100010} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22400002} + - {fileID: 22400012} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &11400012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11400010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a2b17e84c4df7d4c890f25c7c265c11, type: 3} + m_Name: + m_EditorClassIdentifier: + skipOnInput: 0 + waitForInput: 1 + subtitlesGroup: {fileID: 22400002} + actorSpeech: {fileID: 11400008} + actorName: {fileID: 11400006} + actorPortrait: {fileID: 11400000} + waitInputIndicator: {fileID: 224000012677293416} + subtitleDelays: + characterDelay: 0.05 + sentenceDelay: 0.5 + commaDelay: 0.1 + finalDelay: 1.2 + typingSounds: + - {fileID: 8300000, guid: a0d9ccf1ea0e87d4794965b3fa230c65, type: 3} + - {fileID: 8300000, guid: 5e5452015663bd141a0af3ff478c7272, type: 3} + - {fileID: 8300000, guid: 5d3613a99f5e0ac43a2acdfd87d61a4e, type: 3} + optionsGroup: {fileID: 22400012} + optionButton: {fileID: 11400016} +--- !u!1 &100012 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400012} + - component: {fileID: 22200012} + - component: {fileID: 11400014} + m_Layer: 5 + m_Name: DialogueOptionsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400012 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100012} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22400014} + m_Father: {fileID: 22400010} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 6.5} + m_SizeDelta: {x: -167, y: 47} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &22200012 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100012} + m_CullTransparentMesh: 0 +--- !u!114 &11400014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7607843} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &100014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400014} + - component: {fileID: 22200014} + - component: {fileID: 11400018} + - component: {fileID: 11400016} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400014 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100014} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22400004} + m_Father: {fileID: 22400012} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000015258789, y: -23.35} + m_SizeDelta: {x: -51.8, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200014 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100014} + m_CullTransparentMesh: 0 +--- !u!114 &11400018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.588} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11400016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_SelectedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400018} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &172602 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22451302} + - component: {fileID: 22281560} + - component: {fileID: 11429452} + m_Layer: 5 + m_Name: NameBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22451302 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172602} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 16.763} + m_SizeDelta: {x: 0, y: 34} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22281560 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172602} + m_CullTransparentMesh: 0 +--- !u!114 &11429452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.16176468, g: 0.16176468, b: 0.16176468, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1000010693599660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224000012677293416} + - component: {fileID: 222000010095227342} + - component: {fileID: 114000011374680962} + m_Layer: 5 + m_Name: WaitInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224000012677293416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010693599660} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400002} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -19.549988, y: 15} + m_SizeDelta: {x: 39.1, y: 29.9} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222000010095227342 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010693599660} + m_CullTransparentMesh: 0 +--- !u!114 &114000011374680962 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010693599660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '[...]' diff --git a/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab.meta similarity index 52% rename from Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta rename to Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab.meta index 4f7bebc..2b16fb8 100644 --- a/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/@DialogueUGUI.prefab.meta @@ -1,8 +1,6 @@ fileFormatVersion: 2 -guid: 6e9c9bfd5055dab4ebb8144c2886b86c +guid: ea4f45f1433c2404197edc445210b679 NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs new file mode 100644 index 0000000..3a7e52c --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs @@ -0,0 +1,295 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine.EventSystems; + +namespace NodeCanvas.DialogueTrees.UI.Examples +{ + + public class DialogueUGUI : MonoBehaviour, IPointerClickHandler + { + + [System.Serializable] + public class SubtitleDelays + { + public float characterDelay = 0.05f; + public float sentenceDelay = 0.5f; + public float commaDelay = 0.1f; + public float finalDelay = 1.2f; + } + + //Options... + [Header("Input Options")] + public bool skipOnInput; + public bool waitForInput; + + //Group... + [Header("Subtitles")] + public RectTransform subtitlesGroup; + public Text actorSpeech; + public Text actorName; + public Image actorPortrait; + public RectTransform waitInputIndicator; + public SubtitleDelays subtitleDelays = new SubtitleDelays(); + public List typingSounds; + private AudioSource playSource; + + //Group... + [Header("Multiple Choice")] + public RectTransform optionsGroup; + public Button optionButton; + private Dictionary cachedButtons; + private Vector2 originalSubsPosition; + private bool isWaitingChoice; + + private AudioSource _localSource; + private AudioSource localSource { + get { return _localSource != null ? _localSource : _localSource = gameObject.AddComponent(); } + } + + + private bool anyKeyDown; + public void OnPointerClick(PointerEventData eventData) => anyKeyDown = true; + void LateUpdate() => anyKeyDown = false; + + + void Awake() { Subscribe(); Hide(); } + void OnEnable() { UnSubscribe(); Subscribe(); } + void OnDisable() { UnSubscribe(); } + + void Subscribe() { + DialogueTree.OnDialogueStarted += OnDialogueStarted; + DialogueTree.OnDialoguePaused += OnDialoguePaused; + DialogueTree.OnDialogueFinished += OnDialogueFinished; + DialogueTree.OnSubtitlesRequest += OnSubtitlesRequest; + DialogueTree.OnMultipleChoiceRequest += OnMultipleChoiceRequest; + } + + void UnSubscribe() { + DialogueTree.OnDialogueStarted -= OnDialogueStarted; + DialogueTree.OnDialoguePaused -= OnDialoguePaused; + DialogueTree.OnDialogueFinished -= OnDialogueFinished; + DialogueTree.OnSubtitlesRequest -= OnSubtitlesRequest; + DialogueTree.OnMultipleChoiceRequest -= OnMultipleChoiceRequest; + } + + void Hide() { + subtitlesGroup.gameObject.SetActive(false); + optionsGroup.gameObject.SetActive(false); + optionButton.gameObject.SetActive(false); + waitInputIndicator.gameObject.SetActive(false); + originalSubsPosition = subtitlesGroup.transform.position; + } + + void OnDialogueStarted(DialogueTree dlg) { + //nothing special... + } + + void OnDialoguePaused(DialogueTree dlg) { + subtitlesGroup.gameObject.SetActive(false); + optionsGroup.gameObject.SetActive(false); + StopAllCoroutines(); + if ( playSource != null ) playSource.Stop(); + } + + void OnDialogueFinished(DialogueTree dlg) { + subtitlesGroup.gameObject.SetActive(false); + optionsGroup.gameObject.SetActive(false); + if ( cachedButtons != null ) { + foreach ( var tempBtn in cachedButtons.Keys ) { + if ( tempBtn != null ) { + Destroy(tempBtn.gameObject); + } + } + cachedButtons = null; + } + StopAllCoroutines(); + if ( playSource != null ) playSource.Stop(); + } + + ///---------------------------------------------------------------------------------------------- + + void OnSubtitlesRequest(SubtitlesRequestInfo info) { + StartCoroutine(Internal_OnSubtitlesRequestInfo(info)); + } + + IEnumerator Internal_OnSubtitlesRequestInfo(SubtitlesRequestInfo info) { + + var text = info.statement.text; + var audio = info.statement.audio; + var actor = info.actor; + + subtitlesGroup.gameObject.SetActive(true); + subtitlesGroup.position = originalSubsPosition; + actorSpeech.text = ""; + + actorName.text = actor.name; + actorSpeech.color = actor.dialogueColor; + + actorPortrait.gameObject.SetActive(actor.portraitSprite != null); + actorPortrait.sprite = actor.portraitSprite; + + if ( audio != null ) { + var actorSource = actor.transform != null ? actor.transform.GetComponent() : null; + playSource = actorSource != null ? actorSource : localSource; + playSource.clip = audio; + playSource.Play(); + actorSpeech.text = text; + var timer = 0f; + while ( timer < audio.length ) { + if ( skipOnInput && anyKeyDown ) { + playSource.Stop(); + break; + } + timer += Time.deltaTime; + yield return null; + } + } + + if ( audio == null ) { + var tempText = ""; + var inputDown = false; + if ( skipOnInput ) { + StartCoroutine(CheckInput(() => { inputDown = true; })); + } + + for ( int i = 0; i < text.Length; i++ ) { + + if ( skipOnInput && inputDown ) { + actorSpeech.text = text; + yield return null; + break; + } + + if ( subtitlesGroup.gameObject.activeSelf == false ) { + yield break; + } + + char c = text[i]; + tempText += c; + yield return StartCoroutine(DelayPrint(subtitleDelays.characterDelay)); + PlayTypeSound(); + if ( c == '.' || c == '!' || c == '?' ) { + yield return StartCoroutine(DelayPrint(subtitleDelays.sentenceDelay)); + PlayTypeSound(); + } + if ( c == ',' ) { + yield return StartCoroutine(DelayPrint(subtitleDelays.commaDelay)); + PlayTypeSound(); + } + + actorSpeech.text = tempText; + } + + if ( !waitForInput ) { + yield return StartCoroutine(DelayPrint(subtitleDelays.finalDelay)); + } + } + + if ( waitForInput ) { + waitInputIndicator.gameObject.SetActive(true); + while ( !anyKeyDown ) { + yield return null; + } + waitInputIndicator.gameObject.SetActive(false); + } + + yield return null; + subtitlesGroup.gameObject.SetActive(false); + info.Continue(); + } + + void PlayTypeSound() { + if ( typingSounds.Count > 0 ) { + var sound = typingSounds[Random.Range(0, typingSounds.Count)]; + if ( sound != null ) { + localSource.PlayOneShot(sound, Random.Range(0.6f, 1f)); + } + } + } + + IEnumerator CheckInput(System.Action Do) { + while ( !anyKeyDown ) { + yield return null; + } + Do(); + } + + IEnumerator DelayPrint(float time) { + var timer = 0f; + while ( timer < time ) { + timer += Time.deltaTime; + yield return null; + } + } + + ///---------------------------------------------------------------------------------------------- + + void OnMultipleChoiceRequest(MultipleChoiceRequestInfo info) { + + optionsGroup.gameObject.SetActive(true); + var buttonHeight = optionButton.GetComponent().rect.height; + optionsGroup.sizeDelta = new Vector2(optionsGroup.sizeDelta.x, ( info.options.Values.Count * buttonHeight ) + 20); + + cachedButtons = new Dictionary(); + int i = 0; + + foreach ( KeyValuePair pair in info.options ) { + var btn = (Button)Instantiate(optionButton); + btn.gameObject.SetActive(true); + btn.transform.SetParent(optionsGroup.transform, false); + btn.transform.localPosition = (Vector3)optionButton.transform.localPosition - new Vector3(0, buttonHeight * i, 0); + btn.GetComponentInChildren().text = pair.Key.text; + cachedButtons.Add(btn, pair.Value); + btn.onClick.AddListener(() => { Finalize(info, cachedButtons[btn]); }); + i++; + } + + if ( info.showLastStatement ) { + subtitlesGroup.gameObject.SetActive(true); + var newY = optionsGroup.position.y + optionsGroup.sizeDelta.y + 1; + subtitlesGroup.position = new Vector3(subtitlesGroup.position.x, newY, subtitlesGroup.position.z); + } + + if ( info.availableTime > 0 ) { + StartCoroutine(CountDown(info)); + } + } + + IEnumerator CountDown(MultipleChoiceRequestInfo info) { + isWaitingChoice = true; + var timer = 0f; + while ( timer < info.availableTime ) { + if ( isWaitingChoice == false ) { + yield break; + } + timer += Time.deltaTime; + SetMassAlpha(optionsGroup, Mathf.Lerp(1, 0, timer / info.availableTime)); + yield return null; + } + + if ( isWaitingChoice ) { + Finalize(info, info.options.Values.Last()); + } + } + + void Finalize(MultipleChoiceRequestInfo info, int index) { + isWaitingChoice = false; + SetMassAlpha(optionsGroup, 1f); + optionsGroup.gameObject.SetActive(false); + subtitlesGroup.gameObject.SetActive(false); + foreach ( var tempBtn in cachedButtons.Keys ) { + Destroy(tempBtn.gameObject); + } + info.SelectOption(index); + } + + void SetMassAlpha(RectTransform root, float alpha) { + foreach ( var graphic in root.GetComponentsInChildren() ) { + graphic.SetAlpha(alpha); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs.meta new file mode 100644 index 0000000..0263a36 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/DialogueUGUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a2b17e84c4df7d4c890f25c7c265c11 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -50 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds.meta new file mode 100644 index 0000000..491df68 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 308fd16ad36adda41800985165b4ebf1 +folderAsset: yes +timeCreated: 1485179025 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav new file mode 100644 index 0000000..e417131 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav differ diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav.meta new file mode 100644 index 0000000..874e8b3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: a0d9ccf1ea0e87d4794965b3fa230c65 +timeCreated: 1485179020 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav new file mode 100644 index 0000000..297c699 Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav differ diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav.meta new file mode 100644 index 0000000..5a3083b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-2.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 5e5452015663bd141a0af3ff478c7272 +timeCreated: 1485179020 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav new file mode 100644 index 0000000..970d98c Binary files /dev/null and b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav differ diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav.meta new file mode 100644 index 0000000..3adb05b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueGUI/Sounds/Keyboard-3.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 5d3613a99f5e0ac43a2acdfd87d61a4e +timeCreated: 1485179019 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs new file mode 100644 index 0000000..3129c07 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs @@ -0,0 +1,299 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NodeCanvas.Framework; +using ParadoxNotion; +using UnityEngine; +using Logger = ParadoxNotion.Services.Logger; + +namespace NodeCanvas.DialogueTrees +{ + + /// Use DialogueTrees to create Dialogues between Actors + [GraphInfo( + packageName = "NodeCanvas", + docsURL = "https://nodecanvas.paradoxnotion.com/documentation/", + resourcesURL = "https://nodecanvas.paradoxnotion.com/downloads/", + forumsURL = "https://nodecanvas.paradoxnotion.com/forums-page/" + )] + [CreateAssetMenu(menuName = "ParadoxNotion/NodeCanvas/Dialogue Tree Asset")] + public class DialogueTree : Graph + { + + ///---------------------------------------------------------------------------------------------- + [System.Serializable] + class DerivedSerializationData + { + public List actorParameters; + } + + public override object OnDerivedDataSerialization() { + var data = new DerivedSerializationData(); + data.actorParameters = this.actorParameters; + return data; + } + + public override void OnDerivedDataDeserialization(object data) { + if ( data is DerivedSerializationData ) { + this.actorParameters = ( (DerivedSerializationData)data ).actorParameters; + } + } + ///---------------------------------------------------------------------------------------------- + + ///An Actor Parameter + [System.Serializable] + public class ActorParameter + { + [SerializeField] private string _keyName; + [SerializeField] private string _id; + [SerializeField] private UnityEngine.Object _actorObject; + [System.NonSerialized] private IDialogueActor _actor; + + + ///Key name of the parameter + public string name { + get { return _keyName; } + set { _keyName = value; } + } + + ///ID of the parameter + public string ID => string.IsNullOrEmpty(_id) ? _id = System.Guid.NewGuid().ToString() : _id; + + ///The reference actor of the parameter + public IDialogueActor actor { + get + { + if ( _actor == null ) { + _actor = _actorObject as IDialogueActor; + } + return _actor; + } + set + { + _actor = value; + _actorObject = value as UnityEngine.Object; + } + } + + public ActorParameter() { } + public ActorParameter(string name) { this.name = name; } + public ActorParameter(string name, IDialogueActor actor) { + this.name = name; + this.actor = actor; + } + + public override string ToString() { return name; } + } + + ///---------------------------------------------------------------------------------------------- + + ///The string used for the starting actor" + public const string INSTIGATOR_NAME = "SELF"; + + ///The dialogue actor parameters. We let Unity serialize this as well + [SerializeField] public List actorParameters = new List(); + private bool enterStartNodeFlag; + + public static event Action OnDialogueStarted; + public static event Action OnDialoguePaused; + public static event Action OnDialogueFinished; + public static event Action OnSubtitlesRequest; + public static event Action OnMultipleChoiceRequest; + + ///The current DialogueTree running + public static DialogueTree currentDialogue { get; private set; } + ///The previous DialogueTree running + public static DialogueTree previousDialogue { get; private set; } + + ///The current node of this DialogueTree + public DTNode currentNode { get; private set; } + + ///---------------------------------------------------------------------------------------------- + public override System.Type baseNodeType => typeof(DTNode); + public override bool requiresAgent => false; + public override bool requiresPrimeNode => true; + public override bool isTree => true; + public override bool allowBlackboardOverrides => true; + sealed public override bool canAcceptVariableDrops => false; + public sealed override PlanarDirection flowDirection => PlanarDirection.Vertical; + ///---------------------------------------------------------------------------------------------- + + ///A list of the defined names for the involved actor parameters + public List definedActorParameterNames { + get + { + var list = actorParameters.Select(r => r.name).ToList(); + list.Insert(0, INSTIGATOR_NAME); + return list; + } + } + + ///Returns the ActorParameter by id + public ActorParameter GetParameterByID(string id) { + return actorParameters.Find(p => p.ID == id); + } + + ///Returns the ActorParameter by name + public ActorParameter GetParameterByName(string paramName) { + return actorParameters.Find(p => p.name == paramName); + } + + ///Returns the actor by parameter id. + public IDialogueActor GetActorReferenceByID(string id) { + var param = GetParameterByID(id); + return param != null ? GetActorReferenceByName(param.name) : null; + } + + ///Resolves and gets an actor based on the key name + public IDialogueActor GetActorReferenceByName(string paramName) { + + //Check for INSTIGATOR selection + if ( paramName == INSTIGATOR_NAME ) { + + //return it directly if it implements IDialogueActor + if ( agent is IDialogueActor ) { + return (IDialogueActor)agent; + } + + //Otherwise use the default actor and set name and transform from agent + if ( agent != null ) { + return new ProxyDialogueActor(agent.gameObject.name, agent.transform); + } + + return new ProxyDialogueActor("NO ACTOR", null); + } + + //Check for non INSTIGATOR selection. If there IS an actor reference return it + var refData = actorParameters.Find(r => r.name == paramName); + if ( refData != null && refData.actor != null ) { + return refData.actor; + } + + //Otherwise use the default actor and set the name to the key and null transform + Logger.Log(string.Format("An actor entry '{0}' on DialogueTree has no reference. A dummy Actor will be used with the entry Key for name", paramName), "Dialogue Tree", this); + return new ProxyDialogueActor(paramName, null); + } + + + ///Set the target IDialogueActor for the provided key parameter name + public void SetActorReference(string paramName, IDialogueActor actor) { + var param = actorParameters.Find(p => p.name == paramName); + if ( param == null ) { + Logger.LogError(string.Format("There is no defined Actor key name '{0}'", paramName), "Dialogue Tree", this); + return; + } + param.actor = actor; + } + + ///Set all target IDialogueActors at once by provided dictionary + public void SetActorReferences(Dictionary actors) { + foreach ( var pair in actors ) { + var param = actorParameters.Find(p => p.name == pair.Key); + if ( param == null ) { + Logger.LogWarning(string.Format("There is no defined Actor key name '{0}'. Seting actor skiped", pair.Key), "Dialogue Tree", this); + continue; + } + param.actor = pair.Value; + } + } + + ///Continues the DialogueTree at provided child connection index of currentNode + public void Continue(int index = 0) { + if ( index < 0 || index > currentNode.outConnections.Count - 1 ) { + Stop(true); + return; + } + currentNode.outConnections[index].status = Status.Success; //editor vis + EnterNode((DTNode)currentNode.outConnections[index].targetNode); + } + + ///Enters the provided node + public void EnterNode(DTNode node) { + currentNode = node; + currentNode.Reset(false); + if ( currentNode.Execute(agent, blackboard) == Status.Error ) { + Stop(false); + } + } + + ///Raise the OnSubtitlesRequest event + public static void RequestSubtitles(SubtitlesRequestInfo info) { + if ( OnSubtitlesRequest != null ) + OnSubtitlesRequest(info); + else Logger.LogWarning("Subtitle Request event has no subscribers. Make sure to add the default '@DialogueGUI' prefab or create your own GUI.", "Dialogue Tree"); + } + + ///Raise the OnMultipleChoiceRequest event + public static void RequestMultipleChoices(MultipleChoiceRequestInfo info) { + if ( OnMultipleChoiceRequest != null ) + OnMultipleChoiceRequest(info); + else Logger.LogWarning("Multiple Choice Request event has no subscribers. Make sure to add the default '@DialogueGUI' prefab or create your own GUI.", "Dialogue Tree"); + } + + protected override void OnGraphStarted() { + previousDialogue = currentDialogue; + currentDialogue = this; + + Logger.Log(string.Format("Dialogue Started '{0}'", this.name), "Dialogue Tree", this); + if ( OnDialogueStarted != null ) { + OnDialogueStarted(this); + } + + if ( !( agent is IDialogueActor ) ) { + Logger.Log("Agent used in DialogueTree does not implement IDialogueActor. A dummy actor will be used.", "Dialogue Tree", this); + } + + enterStartNodeFlag = true; + } + + protected override void OnGraphUpdate() { + if ( enterStartNodeFlag ) { + //use a flag so that other nodes can do stuff on graph started + enterStartNodeFlag = false; + EnterNode(currentNode != null ? currentNode : (DTNode)primeNode); + } + + if ( currentNode is IUpdatable ) { + ( currentNode as IUpdatable ).Update(); + } + } + + protected override void OnGraphStoped() { + currentDialogue = previousDialogue; + previousDialogue = null; + currentNode = null; + + Logger.Log(string.Format("Dialogue Finished '{0}'", this.name), "Dialogue Tree", this); + if ( OnDialogueFinished != null ) { + OnDialogueFinished(this); + } + } + + protected override void OnGraphPaused() { + Logger.Log(string.Format("Dialogue Paused '{0}'", this.name), "Dialogue Tree", this); + if ( OnDialoguePaused != null ) { + OnDialoguePaused(this); + } + } + + protected override void OnGraphUnpaused() { + EnterNode(currentNode != null ? currentNode : (DTNode)primeNode); + + Logger.Log(string.Format("Dialogue Resumed '{0}'", this.name), "Dialogue Tree", this); + if ( OnDialogueStarted != null ) { + OnDialogueStarted(this); + } + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + [UnityEditor.MenuItem("Tools/ParadoxNotion/NodeCanvas/Create/Dialogue Tree Object", false, 2)] + static void Editor_CreateGraph() { + var dt = new GameObject("DialogueTree").AddComponent(); + UnityEditor.Selection.activeObject = dt; + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs.meta new file mode 100644 index 0000000..05d441b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTree.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 2c3f478ef69fbe04fa9ed3664a8a443e +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs new file mode 100644 index 0000000..fda69f7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using NodeCanvas.Framework; +using ParadoxNotion; + +namespace NodeCanvas.DialogueTrees +{ + + [AddComponentMenu("NodeCanvas/Dialogue Tree Controller")] + public class DialogueTreeController : GraphOwner, IDialogueActor + { + + string IDialogueActor.name => name; + Texture2D IDialogueActor.portrait => null; + Sprite IDialogueActor.portraitSprite => null; + Color IDialogueActor.dialogueColor => Color.white; + Vector3 IDialogueActor.dialoguePosition => Vector3.zero; + Transform IDialogueActor.transform => transform; + + + ///Start the DialogueTree without an Instigator + public void StartDialogue() { + StartDialogue(this, null); + } + + ///Start the DialogueTree with a callback for when its finished + public void StartDialogue(Action callback) { + StartDialogue(this, callback); + } + + ///Start the DialogueTree with provided actor as Instigator + public void StartDialogue(IDialogueActor instigator) { + StartDialogue(instigator, null); + } + + ///Assign a new DialogueTree and Start it + public void StartDialogue(DialogueTree newTree, IDialogueActor instigator, Action callback) { + graph = newTree; + StartDialogue(instigator, callback); + } + + ///Start the already assgined DialogueTree with provided actor as instigator and callback + public void StartDialogue(IDialogueActor instigator, Action callback) { + graph = GetInstance(graph); + graph.StartGraph(instigator is Component ? (Component)instigator : instigator.transform, blackboard, updateMode, callback); + } + + ///Pause the DialogueTree + public void PauseDialogue() { + graph.Pause(); + } + + ///Stop the DialogueTree + public void StopDialogue() { + graph.Stop(); + } + + ///Set an actor reference by parameter name + public void SetActorReference(string paramName, IDialogueActor actor) { + if ( behaviour != null ) { + behaviour.SetActorReference(paramName, actor); + } + } + + ///Set all actor reference parameters at once + public void SetActorReferences(Dictionary actors) { + if ( behaviour != null ) { + behaviour.SetActorReferences(actors); + } + } + + ///Get the actor reference by parameter name + public IDialogueActor GetActorReferenceByName(string paramName) { + return behaviour != null ? behaviour.GetActorReferenceByName(paramName) : null; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + new void Reset() { + base.enableAction = EnableAction.DoNothing; + base.disableAction = DisableAction.DoNothing; + blackboard = gameObject.GetAddComponent(); + SetBoundGraphReference(ScriptableObject.CreateInstance()); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs.meta new file mode 100644 index 0000000..67abd10 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/DialogueTreeController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c32e4b851ebd8fa4ea0645b99be1cf97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b5eeec78a0081094cb8dfeb83808d762, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs new file mode 100644 index 0000000..46417f9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs @@ -0,0 +1,55 @@ +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + /// An interface to use for DialogueActors within a DialogueTree. + public interface IDialogueActor + { + string name { get; } + Texture2D portrait { get; } + Sprite portraitSprite { get; } + Color dialogueColor { get; } + Vector3 dialoguePosition { get; } + Transform transform { get; } + } + + ///A basic rather limited implementation of IDialogueActor + [System.Serializable] + public class ProxyDialogueActor : IDialogueActor + { + + private string _name; + private Transform _transform; + + public string name { + get { return _name; } + } + + public Texture2D portrait { + get { return null; } + } + + public Sprite portraitSprite { + get { return null; } + } + + public Color dialogueColor { + get { return Color.white; } + } + + public Vector3 dialoguePosition { + get { return Vector3.zero; } + } + + public Transform transform { + get { return _transform; } + } + + public ProxyDialogueActor(string name, Transform transform) { + this._name = name; + this._transform = transform; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs.meta new file mode 100644 index 0000000..a58e1d9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IDialogueActor.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: b6fede26f3152e541ab8baad9585549a +labels: +- Node +- visualscripting +- dialogue +- Graph +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs new file mode 100644 index 0000000..de08922 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs @@ -0,0 +1,87 @@ +using ParadoxNotion; +using NodeCanvas.Framework; +using UnityEngine; +using System.Linq; + +namespace NodeCanvas.DialogueTrees +{ + + ///An interface to use for whats being said by a dialogue actor + public interface IStatement + { + string text { get; } + AudioClip audio { get; } + string meta { get; } + } + + ///Holds data of what's being said usualy by an actor + [System.Serializable] + public class Statement : IStatement + { + + [SerializeField] private string _text = string.Empty; + [SerializeField] private AudioClip _audio; + [SerializeField] private string _meta = string.Empty; + + public string text { + get { return _text; } + set { _text = value; } + } + + public AudioClip audio { + get { return _audio; } + set { _audio = value; } + } + + public string meta { + get { return _meta; } + set { _meta = value; } + } + + //required + public Statement() { } + public Statement(string text) { + this.text = text; + } + + public Statement(string text, AudioClip audio) { + this.text = text; + this.audio = audio; + } + + public Statement(string text, AudioClip audio, string meta) { + this.text = text; + this.audio = audio; + this.meta = meta; + } + + ///Replace the text of the statement found in brackets, with blackboard variables ToString and returns a Statement copy + public IStatement BlackboardReplace(IBlackboard bb) { + var copy = ParadoxNotion.Serialization.JSONSerializer.Clone(this); + + copy.text = copy.text.ReplaceWithin('[', ']', (input) => + { + object o = null; + if ( bb != null ) { //referenced blackboard replace + var v = bb.GetVariable(input, typeof(object)); + if ( v != null ) { o = v.value; } + } + + if ( input.Contains("/") ) { //global blackboard replace + var globalBB = GlobalBlackboard.Find(input.Split('/').First()); + if ( globalBB != null ) { + var v = globalBB.GetVariable(input.Split('/').Last(), typeof(object)); + if ( v != null ) { o = v.value; } + } + } + return o != null ? o.ToString() : input; + }); + + return copy; + } + + public override string ToString() { + return text; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs.meta new file mode 100644 index 0000000..e242b87 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/IStatement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 964dda7a8c6ffe64496a9912416eee06 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes.meta new file mode 100644 index 0000000..161972b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: da9036d563304ce4bb5c20ba24986360 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs new file mode 100644 index 0000000..ffb1d9a --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs @@ -0,0 +1,75 @@ +using System.Collections; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + [Name("Task Action")] + [Description("Execute an Action Task for the Dialogue Actor selected.")] + public class ActionNode : DTNode, ITaskAssignable + { + + [SerializeField] + private ActionTask _action; + + public ActionTask action { + get { return _action; } + set { _action = value; } + } + + public Task task { + get { return action; } + set { action = (ActionTask)value; } + } + + public override bool requireActorSelection { get { return true; } } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + + if ( action == null ) { + return Error("Action is null on Dialogue Action Node"); + } + + status = Status.Running; + StartCoroutine(UpdateAction(finalActor.transform)); + return status; + } + + IEnumerator UpdateAction(Component actionAgent) { + while ( status == Status.Running ) { + var actionStatus = action.Execute(actionAgent, graphBlackboard); + if ( actionStatus != Status.Running ) { + OnActionEnd(actionStatus == Status.Success ? true : false); + yield break; + } + + yield return null; + } + } + + void OnActionEnd(bool success) { + + if ( success ) { + status = Status.Success; + DLGTree.Continue(); + return; + } + + status = Status.Failure; + DLGTree.Stop(false); + } + + protected override void OnReset() { + if ( action != null ) + action.EndAction(null); + } + + public override void OnGraphPaused() { + if ( action != null ) + action.Pause(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs.meta new file mode 100644 index 0000000..bda1d5b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ActionNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 856f5f12f2d3c4541a8a36720cb3bdcf +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs new file mode 100644 index 0000000..2a77a2b --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs @@ -0,0 +1,59 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + [ParadoxNotion.Design.Icon("Condition")] + [Name("Task Condition")] + [Category("Branch")] + [Description("Execute the first child node if a Condition is true, or the second one if that Condition is false. The Actor selected is used for the Condition check")] + [Color("b3ff7f")] + public class ConditionNode : DTNode, ITaskAssignable + { + + [SerializeField] + private ConditionTask _condition; + + public ConditionTask condition { + get { return _condition; } + set { _condition = value; } + } + + public Task task { + get { return condition; } + set { condition = (ConditionTask)value; } + } + + public override int maxOutConnections { get { return 2; } } + public override bool requireActorSelection { get { return true; } } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + + if ( outConnections.Count == 0 ) { + return Error("There are no connections on the Dialogue Condition Node"); + } + + if ( condition == null ) { + return Error("There is no Conidition on the Dialoge Condition Node"); + } + + var isSuccess = condition.CheckOnce(finalActor.transform, graphBlackboard); + status = isSuccess ? Status.Success : Status.Failure; + DLGTree.Continue(isSuccess ? 0 : 1); + return status; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override string GetConnectionInfo(int i) { + return i == 0 ? "Then" : "Else"; + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs.meta new file mode 100644 index 0000000..b20b4ab --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ConditionNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 01a3a97a8a25c2441aa667aa238c0486 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs new file mode 100644 index 0000000..f5fbe37 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs @@ -0,0 +1,44 @@ +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + [Name("FINISH")] + [Category("Control")] + [Description("End the dialogue in Success or Failure.\nNote: A Dialogue will anyway End in Succcess if it has reached a node without child connections. Thus this node is mostly useful if you want to end a Dialogue in Failure.")] + [ParadoxNotion.Design.Icon("Halt")] + [Color("6ebbff")] + public class FinishNode : DTNode + { + + public BooleanStatus finishState = BooleanStatus.Success; + + public override int maxOutConnections { get { return 0; } } + public override bool requireActorSelection { get { return false; } } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + status = (Status)finishState; + DLGTree.Stop(finishState == BooleanStatus.Success ? true : false); + return status; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + protected override void OnNodeGUI() { + GUILayout.Label("" + finishState.ToString() + ""); + } + + protected override void OnNodeInspectorGUI() { + DrawDefaultInspector(); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs.meta new file mode 100644 index 0000000..88abde9 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/FinishNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31be30c3adfc6af4a8c0750caaafa770 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs new file mode 100644 index 0000000..5ef366d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs @@ -0,0 +1,40 @@ +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + +namespace NodeCanvas.DialogueTrees +{ + + [Name("JUMP")] + [Description("Select a target node to jump to.\nFor your convenience in identifying nodes in the dropdown, please give a Tag name to the nodes you want to use in this way.")] + [Category("Control")] + [ParadoxNotion.Design.Icon("Set")] + [Color("6ebbff")] + public class Jumper : DTNode, IHaveNodeReference + { + [ParadoxNotion.Serialization.FullSerializer.fsSerializeAs("_sourceNodeUID")] + public NodeReference _targetNode; + + INodeReference IHaveNodeReference.targetReference => _targetNode; + private DTNode target => _targetNode?.Get(graph); + + public override int maxOutConnections { get { return 0; } } + public override bool requireActorSelection { get { return false; } } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + if ( target == null ) { return Error("Target Node of Jumper node is null"); } + DLGTree.EnterNode(target); + return Status.Success; + } + + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + protected override void OnNodeGUI() { + GUILayout.Label(string.Format("{0}", target != null ? target.ToString() : "NONE")); + } +#endif + + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs.meta new file mode 100644 index 0000000..a30dec7 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/Jumper.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8c3b37a66cf2a241ae31bbde152af4d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs new file mode 100644 index 0000000..40f40f1 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs @@ -0,0 +1,187 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + [ParadoxNotion.Design.Icon("List")] + [Name("Multiple Choice")] + [Category("Branch")] + [Description("Prompt a Dialogue Multiple Choice. A choice will be available if the choice condition(s) are true or there is no choice conditions. The Actor selected is used for the condition checks and will also Say the selection if the option is checked.")] + [Color("b3ff7f")] + public class MultipleChoiceNode : DTNode + { + + [System.Serializable] + public class Choice + { + public bool isUnfolded = true; + public Statement statement; + public ConditionTask condition; + public Choice() { } + public Choice(Statement statement) { + this.statement = statement; + } + } + + ///---------------------------------------------------------------------------------------------- + + [SliderField(0f, 10f)] + public float availableTime; + public bool saySelection; + + [SerializeField, AutoSortWithChildrenConnections] + private List availableChoices = new List(); + + public override int maxOutConnections { get { return availableChoices.Count; } } + public override bool requireActorSelection { get { return true; } } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + + if ( outConnections.Count == 0 ) { + return Error("There are no connections to the Multiple Choice Node!"); + } + + var finalOptions = new Dictionary(); + + for ( var i = 0; i < availableChoices.Count; i++ ) { + var condition = availableChoices[i].condition; + if ( condition == null || condition.CheckOnce(finalActor.transform, bb) ) { + var tempStatement = availableChoices[i].statement.BlackboardReplace(bb); + finalOptions[tempStatement] = i; + } + } + + if ( finalOptions.Count == 0 ) { + ParadoxNotion.Services.Logger.Log("Multiple Choice Node has no available options. Dialogue Ends.", LogTag.EXECUTION, this); + DLGTree.Stop(false); + return Status.Failure; + } + + var optionsInfo = new MultipleChoiceRequestInfo(finalActor, finalOptions, availableTime, OnOptionSelected); + optionsInfo.showLastStatement = true; + DialogueTree.RequestMultipleChoices(optionsInfo); + return Status.Running; + } + + void OnOptionSelected(int index) { + + status = Status.Success; + + System.Action Finalize = () => { DLGTree.Continue(index); }; + + if ( saySelection ) { + var tempStatement = availableChoices[index].statement.BlackboardReplace(graphBlackboard); + var speechInfo = new SubtitlesRequestInfo(finalActor, tempStatement, Finalize); + DialogueTree.RequestSubtitles(speechInfo); + } else { + Finalize(); + } + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override void OnConnectionInspectorGUI(int i) { + if ( i >= 0 ) { DoChoiceGUI(availableChoices[i]); } + } + + public override string GetConnectionInfo(int i) { + if ( i >= availableChoices.Count ) { + return "NOT SET"; + } + var text = string.Format("'{0}'", availableChoices[i].statement.text); + if ( availableChoices[i].condition == null ) { + return text; + } + return string.Format("{0}\n{1}", text, availableChoices[i].condition.summaryInfo); + } + + protected override void OnNodeGUI() { + + if ( availableChoices.Count == 0 ) { + GUILayout.Label("No Options Available"); + return; + } + + for ( var i = 0; i < availableChoices.Count; i++ ) { + var choice = availableChoices[i]; + var connection = i < outConnections.Count ? outConnections[i] : null; + GUILayout.BeginHorizontal(Styles.roundedBox); + GUILayout.Label(string.Format("{0} {1}", connection != null ? "■" : "□", choice.statement.text.CapLength(30)), Styles.leftLabel); + GUILayout.EndHorizontal(); + } + + GUILayout.BeginHorizontal(); + if ( availableTime > 0 ) { + GUILayout.Label(availableTime + "' Seconds"); + } + if ( saySelection ) { + GUILayout.Label("Say Selection"); + } + GUILayout.EndHorizontal(); + } + + protected override void OnNodeInspectorGUI() { + + base.OnNodeInspectorGUI(); + + if ( GUILayout.Button("Add Choice") ) { + availableChoices.Add(new Choice(new Statement("I am a choice..."))); + } + + if ( availableChoices.Count == 0 ) { + return; + } + + EditorUtils.ReorderableList(availableChoices, (i, picked) => + { + var choice = availableChoices[i]; + GUILayout.BeginHorizontal("box"); + + var text = string.Format("{0} {1}", choice.isUnfolded ? "▼ " : "► ", choice.statement.text); + if ( GUILayout.Button(text, (GUIStyle)"label", GUILayout.Width(0), GUILayout.ExpandWidth(true)) ) { + choice.isUnfolded = !choice.isUnfolded; + } + + if ( GUILayout.Button("X", GUILayout.Width(20)) ) { + availableChoices.RemoveAt(i); + if ( i < outConnections.Count ) { + graph.RemoveConnection(outConnections[i]); + } + } + + GUILayout.EndHorizontal(); + + if ( choice.isUnfolded ) { + DoChoiceGUI(choice); + } + }); + + } + + void DoChoiceGUI(Choice choice) { + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + GUILayout.BeginVertical("box"); + + choice.statement.text = UnityEditor.EditorGUILayout.TextField(choice.statement.text); + choice.statement.audio = UnityEditor.EditorGUILayout.ObjectField("Audio File", choice.statement.audio, typeof(AudioClip), false) as AudioClip; + choice.statement.meta = UnityEditor.EditorGUILayout.TextField("Meta Data", choice.statement.meta); + + NodeCanvas.Editor.TaskEditor.TaskFieldMulti(choice.condition, graph, (c) => { choice.condition = c; }); + + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + + GUILayout.Space(10); + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs.meta new file mode 100644 index 0000000..66f916d --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleChoiceNode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ff3d8c33a9aa7f349b04870043553f39 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs new file mode 100644 index 0000000..5fda9bf --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Design; + +namespace NodeCanvas.DialogueTrees +{ + + [ParadoxNotion.Design.Icon("Selector")] + [Name("Multiple Task Condition")] + [Category("Branch")] + [Description("Will continue with the first child node which condition returns true. The Dialogue Actor selected will be used for the checks")] + [Color("b3ff7f")] + public class MultipleConditionNode : DTNode + { + + [SerializeField, AutoSortWithChildrenConnections] + private List conditions = new List(); + + public override int maxOutConnections { + get { return -1; } + } + + public override void OnChildConnected(int index) { + if ( conditions.Count < outConnections.Count ) { + conditions.Insert(index, null); + } + } + + public override void OnChildDisconnected(int index) { + conditions.RemoveAt(index); + } + + protected override Status OnExecute(Component agent, IBlackboard bb) { + + if ( outConnections.Count == 0 ) { + return Error("There are no connections on the Dialogue Condition Node"); + } + + for ( var i = 0; i < outConnections.Count; i++ ) { + if ( conditions[i] == null || conditions[i].CheckOnce(finalActor.transform, graphBlackboard) ) { + DLGTree.Continue(i); + return Status.Success; + } + } + + ParadoxNotion.Services.Logger.LogWarning("No condition is true. Dialogue Ends.", LogTag.EXECUTION, this); + DLGTree.Stop(false); + return Status.Failure; + } + + ///---------------------------------------------------------------------------------------------- + ///---------------------------------------UNITY EDITOR------------------------------------------- +#if UNITY_EDITOR + + public override void OnConnectionInspectorGUI(int i) { + NodeCanvas.Editor.TaskEditor.TaskFieldMulti(conditions[i], DLGTree, (c) => { conditions[i] = c; }); + } + + public override string GetConnectionInfo(int i) { + return conditions[i] != null ? conditions[i].summaryInfo : "TRUE"; + } + +#endif + } +} \ No newline at end of file diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs.meta b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs.meta new file mode 100644 index 0000000..d3b8a8f --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/MultipleConditionNode.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1c9cd1de76869e34a8da4b5ddd595fc6 +timeCreated: 1433450910 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ProbabilitySelector.cs b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ProbabilitySelector.cs new file mode 100644 index 0000000..f6420e3 --- /dev/null +++ b/Assets/Plugins/ParadoxNotion/NodeCanvas/Modules/DialogueTrees/Nodes/ProbabilitySelector.cs @@ -0,0 +1,130 @@ +using System.Collections.Generic; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using UnityEngine; + + +namespace NodeCanvas.DialogueTrees +{ + + [Category("Branch")] + [Description("Select a child to execute based on it's chance to be selected. An optional pre-Condition Task can be assigned to filter the child in or out of the selection probability.\nThe actor selected will be used for the condition checks.")] + [ParadoxNotion.Design.Icon("ProbabilitySelector")] + [Color("b3ff7f")] + public class ProbabilitySelector : DTNode + { + + public class Option + { + public BBParameter weight; + public ConditionTask condition; + public Option(float weightValue, IBlackboard bbValue) { + weight = new BBParameter { value = weightValue, bb = bbValue }; + condition = null; + } + } + + [SerializeField, AutoSortWithChildrenConnections] + private List