From eebac93b5d9726603de00973cd93a4c17435da4c Mon Sep 17 00:00:00 2001 From: uurha Date: Mon, 7 Oct 2024 03:44:37 +0200 Subject: [PATCH 1/3] Update scopes --- Packages/manifest.json | 3 +-- ProjectSettings/PackageManagerSettings.asset | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index a64183a..fdfc287 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -47,8 +47,7 @@ "name": "Better Plugins", "url": "https://package.openupm.com", "scopes": [ - "com.tdw", - "com.uurha" + "com.tdw" ] } ] diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset index 2b960c9..97e9c58 100644 --- a/ProjectSettings/PackageManagerSettings.asset +++ b/ProjectSettings/PackageManagerSettings.asset @@ -12,12 +12,12 @@ MonoBehaviour: m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} m_Name: m_EditorClassIdentifier: - m_EnablePreReleasePackages: 0 - m_EnablePackageDependencies: 0 + m_EnablePreReleasePackages: 1 + m_EnablePackageDependencies: 1 m_AdvancedSettingsExpanded: 1 m_ScopedRegistriesSettingsExpanded: 1 m_SeeAllPackageVersions: 0 - oneTimeWarningShown: 0 + oneTimeWarningShown: 1 m_Registries: - m_Id: main m_Name: @@ -31,7 +31,6 @@ MonoBehaviour: m_Url: https://package.openupm.com m_Scopes: - com.tdw - - com.uurha m_IsDefault: 0 m_Capabilities: 0 m_ConfigSource: 4 @@ -40,6 +39,6 @@ MonoBehaviour: m_RegistryInfoDraft: m_Modified: 0 m_ErrorMessage: - m_UserModificationsInstanceId: -850 - m_OriginalInstanceId: -852 + m_UserModificationsInstanceId: -830 + m_OriginalInstanceId: -834 m_LoadAssets: 0 From 0ae0e10a94dedec98d59e4a1892c2e42b17d9735 Mon Sep 17 00:00:00 2001 From: uurha Date: Mon, 7 Oct 2024 05:52:49 +0200 Subject: [PATCH 2/3] Allow select types if they not abstract --- .../SelectImplementationTypeComparer.cs | 24 +++++++++++++++++++ .../SelectImplementationTypeComparer.cs.meta | 3 +++ .../HandlerMaps/SelectTypeHandlerBinder.cs | 2 +- .../Handlers/SelectImplementationHandler.cs | 2 +- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs create mode 100644 Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs.meta diff --git a/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs b/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs new file mode 100644 index 0000000..eaf3b92 --- /dev/null +++ b/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using Better.Commons.Runtime.Comparers; + +namespace Better.Attributes.EditorAddons.Comparers +{ + public class SelectImplementationTypeComparer : BaseComparer, IEqualityComparer + { + public bool Equals(Type x, Type y) + { + if (ReferenceEquals(x, y)) return true; + if (ReferenceEquals(x, null)) return false; + if (ReferenceEquals(y, null)) return false; + if (x.IsAssignableFrom(y) || x == y) return true; + if ((y.IsInterface || y.IsAbstract) && x == typeof(Type)) return true; + return x == typeof(Type); + } + + public int GetHashCode(Type obj) + { + return 0; + } + } +} \ No newline at end of file diff --git a/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs.meta b/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs.meta new file mode 100644 index 0000000..09913ba --- /dev/null +++ b/Assets/BetterAttributes/Editor/Comparers/SelectImplementationTypeComparer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4d010b6bc3674e49b4b426837abd4c6f +timeCreated: 1728271758 \ No newline at end of file diff --git a/Assets/BetterAttributes/Editor/Drawers/HandlerMaps/SelectTypeHandlerBinder.cs b/Assets/BetterAttributes/Editor/Drawers/HandlerMaps/SelectTypeHandlerBinder.cs index fce98f0..396184a 100644 --- a/Assets/BetterAttributes/Editor/Drawers/HandlerMaps/SelectTypeHandlerBinder.cs +++ b/Assets/BetterAttributes/Editor/Drawers/HandlerMaps/SelectTypeHandlerBinder.cs @@ -20,7 +20,7 @@ protected override BaseHandlersTypeCollection GenerateCollection() return new HandlersTypeCollection(TypeComparer.Instance) { { - typeof(SelectAttribute), new Dictionary(TypeComparer.Instance) + typeof(SelectAttribute), new Dictionary(SelectImplementationTypeComparer.Instance) { { typeof(SerializedType), typeof(SelectSerializedTypeHandler) }, { typeof(Enum), typeof(SelectEnumHandler) }, diff --git a/Assets/BetterAttributes/Editor/Drawers/Select/Handlers/SelectImplementationHandler.cs b/Assets/BetterAttributes/Editor/Drawers/Select/Handlers/SelectImplementationHandler.cs index f649ece..7359a68 100644 --- a/Assets/BetterAttributes/Editor/Drawers/Select/Handlers/SelectImplementationHandler.cs +++ b/Assets/BetterAttributes/Editor/Drawers/Select/Handlers/SelectImplementationHandler.cs @@ -50,7 +50,7 @@ public override bool IsSkippingFieldDraw() public override bool CheckSupported() { var baseType = GetFieldOrElementType(); - return baseType.IsAbstract || baseType.IsInterface; + return baseType.IsAbstract || baseType.IsInterface || baseType.HasParameterlessConstructor(); } public override bool ValidateSelected(object item) From b404bd33e3674522e0cf05f4275a00736a35c5c7 Mon Sep 17 00:00:00 2001 From: uurha Date: Mon, 7 Oct 2024 05:53:35 +0200 Subject: [PATCH 3/3] Update package.json --- Assets/BetterAttributes/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/BetterAttributes/package.json b/Assets/BetterAttributes/package.json index 98b8aa5..baf7c7d 100644 --- a/Assets/BetterAttributes/package.json +++ b/Assets/BetterAttributes/package.json @@ -1,7 +1,7 @@ { "name": "com.tdw.better.attributes", "displayName": "Better Attributes", - "version": "0.0.2", + "version": "0.0.3", "unity": "2021.3", "description": "Unity attributes, allows to serialize interfaces, draw handles for Vector3/Vector2/Quaternion/Bounds, create read only fields.", "dependencies": {