/* * Gets an object from the Lua stack according to its Lua type. */ internal object GetObject(LuaState luaState, int index) { var type = LuaLib.LuaType(luaState, index); switch (type) { case LuaTypes.Number: { return(LuaLib.LuaToNumber(luaState, index)); } case LuaTypes.String: { return(LuaLib.LuaToString(luaState, index)); } case LuaTypes.Boolean: { return(LuaLib.LuaToBoolean(luaState, index)); } case LuaTypes.Table: { return(GetTable(luaState, index)); } case LuaTypes.Function: { return(GetFunction(luaState, index)); } case LuaTypes.UserData: { int udata = LuaLib.LuaNetToNetObject(luaState, index); return(udata != -1 ? objects [udata] : GetUserData(luaState, index)); } default: return(null); } }
/* * Gets the CLR object in the index positon of the Lua stack. Returns * delegates as Lua functions. */ internal object GetNetObject(LuaState luaState, int index) { int idx = LuaLib.LuaNetToNetObject(luaState, index); return(idx != -1 ? objects [idx] : null); }