Esempio n. 1
0
        protected BaseMightyMember(MightyContext context)
        {
            ID      = ReferencesUtilities.GetUniqueID(this);
            Context = context;

            WrappersInfo = new List <MightyWrapperInfo>();
        }
Esempio n. 2
0
        private static void CacheScenes()
        {
            MightyTypesCache.ClearCache();

            for (var i = 0; i < SceneManager.sceneCount; i++)
            {
                foreach (var monoBehaviour in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i)))
                {
                    if (monoBehaviour == null)
                    {
                        continue;
                    }
                    var type = monoBehaviour.GetType();
                    if (!type.HasAttributeOfType <BaseHierarchyAttribute>())
                    {
                        continue;
                    }

                    var mightyComponent =
                        (MightyComponent)MightyTypesCache.Add(new MightyComponent(type, new MightyComponentContext(monoBehaviour)));
                    var wrappedAttributes = mightyComponent.GetWrappedAttributes <BaseHierarchyAttribute>();
                    mightyComponent.CacheHierarchyForType(type, wrappedAttributes);
                }
            }
        }
Esempio n. 3
0
        public object DrawField(FieldInfo fieldInfo, Object context, object value, CustomDrawerAttribute attribute)
        {
            if (!GetDrawerForMember(ReferencesUtilities.GetUniqueID(fieldInfo), m_fieldCallback, out var drawerMethod))
            {
                m_customDrawerCache[ReferencesUtilities.GetUniqueID(fieldInfo), m_fieldCallback] =
                    MemberUtilities.GetMightyMethod <object>(context, attribute.DrawerCallback, m_fieldCallback);
            }

            return(InvokeDrawer(drawerMethod, $"object {attribute.DrawerCallback}(string label, object value)",
                                fieldInfo.Name.GetPrettyName(), value));
        }
Esempio n. 4
0
        public static IEnumerable <BaseMightyEditor> GetMightyEditors()
        {
            for (var i = 0; i < SceneManager.sceneCount; i++)
            {
                foreach (var script in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i)))
                {
                    if (CreateMightyEditor <MonoBehaviourEditor>(script, out var mightyEditor))
                    {
                        yield return(mightyEditor);
                    }
                }
            }

            foreach (var script in typeof(ScriptableObject).FindAssetsOfType())
            {
                if (CreateMightyEditor <ScriptableObjectEditor>(script, out var mightyEditor))
                {
                    yield return(mightyEditor);
                }
            }
        }
Esempio n. 5
0
        public static void ApplyAutoValues()
        {
            for (var i = 0; i < SceneManager.sceneCount; i++)
            {
                foreach (var script in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i)))
                {
                    if (MightyEditorUtilities.CreateMightyEditor <MonoBehaviourEditor>(script, out var mightyEditor))
                    {
                        mightyEditor.ApplyAutoValues();
                    }
                }
            }

            foreach (var script in typeof(ScriptableObject).FindAssetsOfType())
            {
                if (MightyEditorUtilities.CreateMightyEditor <ScriptableObjectEditor>(script, out var mightyEditor))
                {
                    mightyEditor.ApplyAutoValues();
                }
            }

            MightyDebugUtilities.MightyDebug("Auto Values Applied", MightyDebugUtilities.LogType.AutoValues);
        }