public object GetAsNetObject(LuaState luaState, int stackPos) { object obj = _translator.GetNetObject(luaState, stackPos); if (obj != null || luaState.Type(stackPos) != LuaType.Table) { return(obj); } if (luaState.GetMetaField(stackPos, "__index") == LuaType.Nil) { return(null); } if (luaState.CheckMetaTable(-1, _translator.Tag)) { luaState.Insert(stackPos); luaState.Remove(stackPos + 1); obj = _translator.GetNetObject(luaState, stackPos); } else { luaState.SetTop(-2); } return(obj); }
public object GetAsObject(LuaState luaState, int stackPos) { if (luaState.Type(stackPos) == LuaType.Table) { if (luaState.GetMetaField(stackPos, "__index") != LuaType.Nil) { if (luaState.CheckMetaTable(-1, translator.Tag)) { luaState.Insert(stackPos); luaState.Remove(stackPos + 1); } else { luaState.SetTop(-2); } } } object obj = translator.GetObject(luaState, stackPos); return(obj); }