Exemple #1
0
        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));
                }
            }
        }