private void OnEnable() { m_darkBox = MightyDrawersDatabase.GetDrawer <DarkBoxGrouper>(); titleContent = new GUIContent(MightyGUIUtilities.DrawIcon(IconName.HELP)) { text = TITLE_TEXT, }; }
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); }
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); }
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()); }
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(); } }
protected void Disable() { m_drawer?.OnDisable(); m_drawer = null; MightyDrawersDatabase.ClearCachesNotOfTypes(typeof(BaseHierarchyAttribute), typeof(BaseReloadScriptsAttribute)); }
private static void DisableReloadScripts() => MightyDrawersDatabase.ClearCachesOfTypes(typeof(BaseReloadScriptsAttribute));