From f9ec037a52fc7da89ba8df3ae23aedf43b73eff5 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 6 Oct 2024 09:09:36 +0800 Subject: [PATCH] refactoring --- src/Buildin/ScriptableObjectSystemWrapper.cs | 1 + src/Editor.meta | 8 ------ src/{Editor => Internal}/AddParamsDrawer.cs | 0 .../AddParamsDrawer.cs.meta | 2 +- .../MonoScriptsAssetProcessor.cs | 0 .../MonoScriptsAssetProcessor.cs.meta | 2 +- .../ReferenceButtonAttributeDrawer.cs} | 25 +++--------------- .../ReferenceButtonAttributeDrawer.cs.meta | 11 ++++++++ src/{Editor => Internal}/ScriptsCache.cs | 26 +++++++++++++------ src/{Editor => Internal}/ScriptsCache.cs.meta | 2 +- src/Utils/ReferenceButtonAttribute.cs | 22 ++++++++++++++++ .../ReferenceButtonAttribute.cs.meta | 2 +- 12 files changed, 59 insertions(+), 42 deletions(-) delete mode 100644 src/Editor.meta rename src/{Editor => Internal}/AddParamsDrawer.cs (100%) rename src/{Editor => Internal}/AddParamsDrawer.cs.meta (83%) rename src/{Editor => Internal}/MonoScriptsAssetProcessor.cs (100%) rename src/{Editor => Internal}/MonoScriptsAssetProcessor.cs.meta (83%) rename src/{Editor/ReferenceButtonAttribute.cs => Internal/ReferenceButtonAttributeDrawer.cs} (68%) create mode 100644 src/Internal/ReferenceButtonAttributeDrawer.cs.meta rename src/{Editor => Internal}/ScriptsCache.cs (95%) rename src/{Editor => Internal}/ScriptsCache.cs.meta (83%) create mode 100644 src/Utils/ReferenceButtonAttribute.cs rename src/{Editor => Utils}/ReferenceButtonAttribute.cs.meta (83%) diff --git a/src/Buildin/ScriptableObjectSystemWrapper.cs b/src/Buildin/ScriptableObjectSystemWrapper.cs index ae49f41..4ca9c14 100644 --- a/src/Buildin/ScriptableObjectSystemWrapper.cs +++ b/src/Buildin/ScriptableObjectSystemWrapper.cs @@ -5,6 +5,7 @@ namespace DCFApixels.DragonECS [MetaName("ScriptableObjectSystem")] [MetaColor(MetaColor.DragonCyan)] [MetaDescription("Wrapper for ScriptableObject systems")] + [MetaID("F5A94C5F92015B4D9286E76809311AF4")] public class ScriptableObjectSystemWrapper : IEcsModule { public ScriptableObject system; diff --git a/src/Editor.meta b/src/Editor.meta deleted file mode 100644 index 661ce2f..0000000 --- a/src/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 21a9b666ca8f69a45a40d9621424e8f4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/Editor/AddParamsDrawer.cs b/src/Internal/AddParamsDrawer.cs similarity index 100% rename from src/Editor/AddParamsDrawer.cs rename to src/Internal/AddParamsDrawer.cs diff --git a/src/Editor/AddParamsDrawer.cs.meta b/src/Internal/AddParamsDrawer.cs.meta similarity index 83% rename from src/Editor/AddParamsDrawer.cs.meta rename to src/Internal/AddParamsDrawer.cs.meta index e1b3592..0acac17 100644 --- a/src/Editor/AddParamsDrawer.cs.meta +++ b/src/Internal/AddParamsDrawer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1907bf7d859547d438973057c64e9656 +guid: 3af2df61517f386448950800d3b1ff3b MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/src/Editor/MonoScriptsAssetProcessor.cs b/src/Internal/MonoScriptsAssetProcessor.cs similarity index 100% rename from src/Editor/MonoScriptsAssetProcessor.cs rename to src/Internal/MonoScriptsAssetProcessor.cs diff --git a/src/Editor/MonoScriptsAssetProcessor.cs.meta b/src/Internal/MonoScriptsAssetProcessor.cs.meta similarity index 83% rename from src/Editor/MonoScriptsAssetProcessor.cs.meta rename to src/Internal/MonoScriptsAssetProcessor.cs.meta index 7d66a80..353bd1b 100644 --- a/src/Editor/MonoScriptsAssetProcessor.cs.meta +++ b/src/Internal/MonoScriptsAssetProcessor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 04572469768b4844aa9865ae16d3f18b +guid: 48c07a8872de79f43aa51dc33d29ba33 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/src/Editor/ReferenceButtonAttribute.cs b/src/Internal/ReferenceButtonAttributeDrawer.cs similarity index 68% rename from src/Editor/ReferenceButtonAttribute.cs rename to src/Internal/ReferenceButtonAttributeDrawer.cs index b8ea2a4..465214a 100644 --- a/src/Editor/ReferenceButtonAttribute.cs +++ b/src/Internal/ReferenceButtonAttributeDrawer.cs @@ -1,28 +1,8 @@ -using DCFApixels.DragonECS.Unity.Editors; -using System; -using UnityEngine; +using System; -namespace DCFApixels.DragonECS -{ - public sealed class ReferenceButtonAttribute : PropertyAttribute, IReferenceButtonAttribute - { - public readonly Type[] PredicateTypes; - public readonly bool IsHideButtonIfNotNull; - Type[] IReferenceButtonAttribute.PredicateTypes { get { return PredicateTypes; } } - bool IReferenceButtonAttribute.IsHideButtonIfNotNull { get { return IsHideButtonIfNotNull; } } - public ReferenceButtonAttribute(bool isHideButtonIfNotNull = false) : this(isHideButtonIfNotNull, Array.Empty()) { } - public ReferenceButtonAttribute(params Type[] predicateTypes) : this(false, predicateTypes) { } - public ReferenceButtonAttribute(bool isHideButtonIfNotNull, params Type[] predicateTypes) - { - IsHideButtonIfNotNull = isHideButtonIfNotNull; - PredicateTypes = predicateTypes; - Array.Sort(predicateTypes, (a, b) => string.Compare(a.AssemblyQualifiedName, b.AssemblyQualifiedName, StringComparison.Ordinal)); - } - } -} namespace DCFApixels.DragonECS.Unity.Editors { - public interface IReferenceButtonAttribute + internal interface IReferenceButtonAttribute { Type[] PredicateTypes { get; } bool IsHideButtonIfNotNull { get; } @@ -35,6 +15,7 @@ namespace DCFApixels.DragonECS.Unity.Editors using DCFApixels.DragonECS.Unity.Internal; using System; using UnityEditor; + using UnityEngine; [CustomPropertyDrawer(typeof(ComponentTemplateReferenceAttribute), true)] [CustomPropertyDrawer(typeof(ReferenceButtonAttribute), true)] diff --git a/src/Internal/ReferenceButtonAttributeDrawer.cs.meta b/src/Internal/ReferenceButtonAttributeDrawer.cs.meta new file mode 100644 index 0000000..0f15cb9 --- /dev/null +++ b/src/Internal/ReferenceButtonAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69a86e40de1b68a448f49be1e83a1ed5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Editor/ScriptsCache.cs b/src/Internal/ScriptsCache.cs similarity index 95% rename from src/Editor/ScriptsCache.cs rename to src/Internal/ScriptsCache.cs index f8208cc..ea37bb7 100644 --- a/src/Editor/ScriptsCache.cs +++ b/src/Internal/ScriptsCache.cs @@ -2,8 +2,10 @@ using DCFApixels.DragonECS.Unity.Internal; using System; using System.Collections.Generic; +using System.IO; using System.Text.RegularExpressions; using UnityEditor; +using UnityEditorInternal; using UnityEngine; namespace DCFApixels.DragonECS.Unity.Editors @@ -24,7 +26,6 @@ namespace DCFApixels.DragonECS.Unity.Editors { public string metaID; public string scriptPath; - public Pair(string metaID, string scriptPath) { this.metaID = metaID; @@ -77,9 +78,11 @@ namespace DCFApixels.DragonECS.Unity.Editors Save(true); } + private void Init() { - if (_isInit) { return; } + if (_isInit && _metaIDScriptPathPairs.Count > 0) { return; } + _metaIDScriptPathPairs.Clear(); var scriptGuids = AssetDatabase.FindAssets($"* t:MonoScript"); @@ -102,16 +105,15 @@ namespace DCFApixels.DragonECS.Unity.Editors metaIDsBuffer.Clear(); } - foreach (var pair in _metaIDScriptPathPairs) - { - EcsDebug.PrintPass($"k:{pair.Key} v:{pair.Value}"); - } + //foreach (var pair in _metaIDScriptPathPairs) + //{ + // EcsDebug.PrintPass($"k:{pair.Key} v:{pair.Value}"); + //} _isInit = true; Save(true); } - public void Reinit() { _isInit = false; @@ -290,13 +292,21 @@ namespace DCFApixels.DragonECS.Unity.Editors if (_serializableMetaIDScriptPathPairs == null) { return; } foreach (var item in _serializableMetaIDScriptPathPairs) { - if (string.IsNullOrEmpty(item.scriptPath)) + if (string.IsNullOrEmpty(item.scriptPath) == false) { _metaIDScriptPathPairs.Add(item.metaID, item.scriptPath); } } } #endregion + + #region Utils + private bool CheckFileExists() + { + string filePath = GetFilePath(); + return File.Exists(filePath); + } + #endregion } } #endif \ No newline at end of file diff --git a/src/Editor/ScriptsCache.cs.meta b/src/Internal/ScriptsCache.cs.meta similarity index 83% rename from src/Editor/ScriptsCache.cs.meta rename to src/Internal/ScriptsCache.cs.meta index f5f3761..d6f1aee 100644 --- a/src/Editor/ScriptsCache.cs.meta +++ b/src/Internal/ScriptsCache.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 82075f06aeb727149b234dffbff0cd9a +guid: 562ccc58fabb98d4982e7c15fdde330e MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/src/Utils/ReferenceButtonAttribute.cs b/src/Utils/ReferenceButtonAttribute.cs new file mode 100644 index 0000000..d12c5e6 --- /dev/null +++ b/src/Utils/ReferenceButtonAttribute.cs @@ -0,0 +1,22 @@ +using DCFApixels.DragonECS.Unity.Editors; +using System; +using UnityEngine; + +namespace DCFApixels.DragonECS +{ + public sealed class ReferenceButtonAttribute : PropertyAttribute, IReferenceButtonAttribute + { + public readonly Type[] PredicateTypes; + public readonly bool IsHideButtonIfNotNull; + Type[] IReferenceButtonAttribute.PredicateTypes { get { return PredicateTypes; } } + bool IReferenceButtonAttribute.IsHideButtonIfNotNull { get { return IsHideButtonIfNotNull; } } + public ReferenceButtonAttribute(bool isHideButtonIfNotNull = false) : this(isHideButtonIfNotNull, Array.Empty()) { } + public ReferenceButtonAttribute(params Type[] predicateTypes) : this(false, predicateTypes) { } + public ReferenceButtonAttribute(bool isHideButtonIfNotNull, params Type[] predicateTypes) + { + IsHideButtonIfNotNull = isHideButtonIfNotNull; + PredicateTypes = predicateTypes; + Array.Sort(predicateTypes, (a, b) => string.Compare(a.AssemblyQualifiedName, b.AssemblyQualifiedName, StringComparison.Ordinal)); + } + } +} \ No newline at end of file diff --git a/src/Editor/ReferenceButtonAttribute.cs.meta b/src/Utils/ReferenceButtonAttribute.cs.meta similarity index 83% rename from src/Editor/ReferenceButtonAttribute.cs.meta rename to src/Utils/ReferenceButtonAttribute.cs.meta index 3721240..7e83077 100644 --- a/src/Editor/ReferenceButtonAttribute.cs.meta +++ b/src/Utils/ReferenceButtonAttribute.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 999d5f8fb88eafc44b8a88406eb3ec39 +guid: f0eb5971224cb3544bfe1f9b1c296b00 MonoImporter: externalObjects: {} serializedVersion: 2