/* * Calls the provided function with the provided parameters */ public static object callFunction(LuaFunction function,object[] args,Type[] returnTypes,object[] inArgs,int[] outArgs) { // args is the return array of arguments, inArgs is the actual array // of arguments passed to the function (with in parameters only), outArgs // has the positions of out parameters object returnValue; int iRefArgs; object[] returnValues=function.call(inArgs,returnTypes); if(returnTypes[0] == typeof(void)) { returnValue=null; iRefArgs=0; } else { returnValue=returnValues[0]; iRefArgs=1; } for(int i=0;i<outArgs.Length;i++) { args[outArgs[i]]=returnValues[iRefArgs]; iRefArgs++; } return returnValue; }
public static object callFunction(LuaFunction function, object[] args, Type[] returnTypes, object[] inArgs, int[] outArgs) { object obj2; int num; object[] objArray = function.call(inArgs, returnTypes); if (returnTypes[0] == typeof(void)) { obj2 = null; num = 0; } else { obj2 = objArray[0]; num = 1; } for (int i = 0; i < outArgs.Length; i++) { args[outArgs[i]] = objArray[num]; num++; } return obj2; }
public void handleEvent(object sender, object data) { handler.call(new object[] { sender, data }, new Type[0]); }