public static IInvokable MakeInvokable(InvokableAttribute attribute, MethodInfo methodInfo, IBoundInstance boundInstance) { string finalName = GetFinalName(attribute.Name, boundInstance); uint instanceId = boundInstance?.UniqueId ?? 0; string[] argDescriptions = GetArgDescriptions(methodInfo.GetParameters()); string returnDescription = GetReturnDescription(methodInfo); return(MakeInvokable(new InvokableInfo(finalName, instanceId, CustomTweakerAttributes.Get(methodInfo), attribute.Description, argDescriptions, returnDescription), methodInfo, boundInstance?.Instance)); }
public static IInvokable MakeInvokable(InvokableAttribute attribute, EventInfo eventInfo, IBoundInstance boundInstance) { string finalName = GetFinalName(attribute.Name, boundInstance); uint instanceId = boundInstance?.UniqueId ?? 0; object instance = boundInstance?.Instance; MethodInfo method = eventInfo.EventHandlerType.GetMethod("Invoke"); string[] argDescriptions = GetArgDescriptions(method.GetParameters()); string returnDescription = GetReturnDescription(method); return(MakeInvokable(new InvokableInfo(finalName, instanceId, CustomTweakerAttributes.Get(eventInfo), attribute.Description, argDescriptions, returnDescription), eventInfo, instance)); }
public AutoInvokable(string name, Delegate del, IBoundInstance instance = null, string description = "", string[] argDescriptions = null, string returnDescription = "") { if (CheckForManager()) { uint num = instance?.UniqueId ?? 0; string name2 = $"{name}#{num}"; invokable = AutoInvokableBase.Manager.RegisterInvokable(new InvokableInfo(name2, num, CustomTweakerAttributes.Get(del.Method), description, argDescriptions, returnDescription), del); } }
public AutoInvokable(string invokableName, string methodName, IBoundInstance instance, string description = "", string[] argDescriptions = null, string returnDescription = "") { if (!CheckForManager()) { return; } MethodInfo[] methods = instance.Type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); foreach (MethodInfo methodInfo in methods) { if (methodInfo.Name == methodName) { uint uniqueId = instance.UniqueId; string name = $"{invokableName}#{uniqueId}"; invokable = AutoInvokableBase.Manager.RegisterInvokable(new InvokableInfo(name, uniqueId, CustomTweakerAttributes.Get(methodInfo), description, argDescriptions, returnDescription), methodInfo, instance.Instance); } } }