Esempio n. 1
0
        private static int GetPriority(BaseMightyMember mightyMember, object target, ScriptIconAttribute attribute)
        {
            var priority = attribute.Priority;

            if (mightyMember.GetValueFromMember(target, attribute.PriorityCallback, out int priorityValue))
            {
                priority = priorityValue;
            }

            return(priority);
        }
Esempio n. 2
0
        private static Texture2D GetTexture(BaseMightyMember mightyMember, object target, ScriptIconAttribute attribute)
        {
            var path = attribute.IconPath;

            if (attribute.PathAsCallback && mightyMember.GetValueFromMember(target, attribute.IconPath, out string pathValue))
            {
                path = pathValue;
            }

            return(MightyGUIUtilities.GetTexture(path));
        }
Esempio n. 3
0
        public static GUIStyle GetStyle(this BaseMightyMember mightyMember, object target, string styleName, out bool exception)
        {
            var ex = false;

            if (string.IsNullOrEmpty(styleName) || !mightyMember.GetValueFromMember(target, styleName, out var guiStyle,
                                                                                    (string name, out GUIStyle value) => GetStyle(name, out value, out ex)))
            {
                exception = ex;
                return(null);
            }

            exception = ex;
            return(guiStyle);
        }
Esempio n. 4
0
        public static bool GetValueFromMember <T>(this BaseMightyMember mightyMember, object target, string memberName, out T value,
                                                  GetValuePredicate <T> predicate = null)
        {
            if (string.IsNullOrWhiteSpace(memberName))
            {
                value = default;
                return(false);
            }

            if (predicate != null && predicate(memberName, out value))
            {
                return(true);
            }

            if (target is BaseWrapperAttribute wrapper && GetCallbackName(target, memberName, out var callbackName))
            {
                return(mightyMember.GetValueFromMember(mightyMember.GetWrapperTarget(wrapper), callbackName, out value, predicate));
            }

            if (InternalGetValueFromMember(target, memberName, true, out value))
            {
                return(true);
            }

            if (!(mightyMember is MightySerializedField serializedField))
            {
                return(false);
            }

            target = serializedField.Property.GetPropertyTargetReference();
            if (target.GetType().GetCustomAttributes(typeof(SerializableAttribute), true).Length > 0 &&
                InternalGetValueFromMember(target, memberName, true, out value))
            {
                return(true);
            }

            return(TypeUtilities.TryConvertStringToType(memberName, out value));
        }
Esempio n. 5
0
 public static bool GetBoolValue(this BaseMightyMember mightyMember, object target, string memberName, out bool value) =>
 mightyMember.GetValueFromMember(target, memberName, out value, bool.TryParse);
Esempio n. 6
0
 public static Color GetColor(this BaseMightyMember mightyMember, object target, string colorName, Color defaultColor) =>
 mightyMember.GetValueFromMember(target, colorName, out Color color, ColorUtility.TryParseHtmlString) ? color : defaultColor;