Beispiel #1
0
 private void OnEnable()
 {
     m_darkBox    = MightyDrawersDatabase.GetDrawer <DarkBoxGrouper>();
     titleContent = new GUIContent(MightyGUIUtilities.DrawIcon(IconName.HELP))
     {
         text = TITLE_TEXT,
     };
 }
Beispiel #2
0
        public bool TryGetDrawOrder(out short drawOrder)
        {
            if (TryGetAttribute(out OrderAttribute attribute))
            {
                drawOrder = MightyDrawersDatabase.GetDrawer <OrderDrawer>().GetOrder(this, attribute);
                return(true);
            }

            drawOrder = short.MaxValue;
            return(false);
        }
Beispiel #3
0
        protected override void DrawField(MightyNonSerializedField nonSerializedField, EditorSerializeAttribute attribute)
        {
            var context = nonSerializedField.Context.Object;
            var field   = nonSerializedField.MemberInfo;
            var target  = nonSerializedField.Context.Target;

            if (attribute.PreviousName != null)
            {
                EditorFieldsDatabase.RenameField(context, attribute.PreviousName, field.Name);
            }

            if (attribute.Options == EditorFieldOption.Hide)
            {
                return;
            }

            var editorField = EditorFieldsDatabase.GetEditorField(context, field.Name);

            if (editorField == null)
            {
                return;
            }

            var value = field.GetValue(target);

            if (attribute.Options.Contains(EditorFieldOption.Deserialize))
            {
                Deserialize(editorField, target, field, ref value);
            }

            if (attribute.Options.Contains(EditorFieldOption.Hide) &&
                field.GetCustomAttribute(typeof(HideAttribute), true) is HideAttribute)
            {
                if (attribute.Options.Contains(EditorFieldOption.Serialize))
                {
                    Serialize(attribute, editorField, value, field.FieldType);
                }
                return;
            }

            if (attribute.Options.Contains(EditorFieldOption.Hide))
            {
                return;
            }

            EditorGUI.BeginChangeCheck();

            if (field.GetCustomAttribute(typeof(CustomDrawerAttribute), true) is CustomDrawerAttribute drawerAttribute &&
                MightyDrawersDatabase.GetDrawerForAttribute <CustomDrawerDrawer>(typeof(CustomDrawerAttribute)) is var drawer)
            {
                value = drawer.DrawField(field, context, value, drawerAttribute);
            }
Beispiel #4
0
        protected override (IRefreshDrawer[], BaseMightyAttribute[]) GetRefreshDrawers()
        {
            var drawersList    = new List <IRefreshDrawer>();
            var attributesList = new List <BaseMightyAttribute>();

            foreach (var value in m_attributesByType.Values)
            {
                if (!(MightyDrawersDatabase.GetDrawerForAttribute <IMightyDrawer>(value.GetType()) is IRefreshDrawer refreshDrawer))
                {
                    continue;
                }

                drawersList.Add(refreshDrawer);
                attributesList.Add(value);
            }

            return(drawersList.ToArray(), attributesList.ToArray());
        }
Beispiel #5
0
        public void ApplyAutoValue()
        {
            if (!TryGetAttribute(out BaseAutoValueAttribute attribute))
            {
                return;
            }

            var drawer = MightyDrawersDatabase.GetDrawerForAttribute <IAutoValueDrawer>(attribute.GetType());

            var state = drawer.InitProperty(this, attribute);

            if (!state.isOk)
            {
                MightyGUIUtilities.DrawHelpBox(state.message);
            }
            else
            {
                MightyEditorUtilities.RegisterChange();
            }
        }
Beispiel #6
0
 protected void Disable()
 {
     m_drawer?.OnDisable();
     m_drawer = null;
     MightyDrawersDatabase.ClearCachesNotOfTypes(typeof(BaseHierarchyAttribute), typeof(BaseReloadScriptsAttribute));
 }
Beispiel #7
0
 private static void DisableReloadScripts() => MightyDrawersDatabase.ClearCachesOfTypes(typeof(BaseReloadScriptsAttribute));