public static int getClassMethod(IntPtr luaState)
{
ObjectTranslator objectTranslator = ObjectTranslator.FromState(luaState);
object rawNetObject = objectTranslator.getRawNetObject(luaState, 1);
if (rawNetObject == null || !(rawNetObject is IReflect))
{
objectTranslator.throwError(luaState, "trying to index an invalid type reference");
LuaDLL.lua_pushnil(luaState);
return(1);
}
IReflect reflect = (IReflect)rawNetObject;
if (LuaDLL.lua_isnumber(luaState, 2))
{
int length = (int)LuaDLL.lua_tonumber(luaState, 2);
objectTranslator.push(luaState, Array.CreateInstance(reflect.UnderlyingSystemType, length));
return(1);
}
string text = LuaDLL.lua_tostring(luaState, 2);
if (text == null)
{
LuaDLL.lua_pushnil(luaState);
return(1);
}
return(objectTranslator.metaFunctions.getMember(luaState, reflect, null, text, BindingFlags.IgnoreCase | BindingFlags.Static | BindingFlags.FlattenHierarchy));
}