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); }
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)); }
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); }
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)); }
public static bool GetBoolValue(this BaseMightyMember mightyMember, object target, string memberName, out bool value) => mightyMember.GetValueFromMember(target, memberName, out value, bool.TryParse);
public static Color GetColor(this BaseMightyMember mightyMember, object target, string colorName, Color defaultColor) => mightyMember.GetValueFromMember(target, colorName, out Color color, ColorUtility.TryParseHtmlString) ? color : defaultColor;