public static bool TryCreateFunction(MelonEngine engine, MethodInfo method, out NativeFunctionInstance function) { if (CheckSignature(method)) { var del = (NativeFunctionDelegate)method.CreateDelegate(typeof(NativeFunctionDelegate)); function = new NativeFunctionInstance(del.Method.Name, null, engine, del); return(true); } function = null; return(false); }
public virtual void GenerateFunctions() { var methods = GetType().GetMethods(); for (int i = 0; i < methods.Length; i++) { var m = methods[i]; if (NativeFunctionInstance.TryCreateFunction(Engine, m, out NativeFunctionInstance function)) { function.Self = this; Properties.Add(m.Name, new Property(function)); } } }