void LuaEventNode::setTouchMode(int mode)
{
    if(_eTouchMode != mode)
    {
        _eTouchMode = mode;
        
		if( _bTouchEnabled)
        {
			setLuaTouchEnabled(false);
			setLuaTouchEnabled(true);
		}
    }
}
static int tolua_Cocos2d_Node_setTouchEnabled(lua_State* tolua_S)
{
#if COCOS2D_DEBUG >= 1
    tolua_Error tolua_err;
    if (
        !tolua_isusertype(tolua_S,1,"cc.Node",0,&tolua_err) ||
        !tolua_isboolean(tolua_S,2,0,&tolua_err) ||
        !tolua_isnoobj(tolua_S,3,&tolua_err)
        )
        goto tolua_lerror;
    else
#endif
    {
        Node* node = static_cast<cocos2d::Node*>(tolua_tousertype(tolua_S,1,0));
        bool value = ((bool)  tolua_toboolean(tolua_S,2,0));
#if COCOS2D_DEBUG >= 1
        if (!node) tolua_error(tolua_S,"invalid 'self' in function 'setTouchEnabled'", nullptr);
#endif
        {
            auto mng = LuaNodeManager::getInstance();
            auto lnode = mng->getLuaNodeByNode(node, value);
            if (!lnode) {
                return 0;
            }
            lnode->setLuaTouchEnabled(value);
        }
    }
    return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
    tolua_error(tolua_S,"#ferror in function 'setTouchEnabled'.",&tolua_err);
    return 0;
#endif
}
int removeLuaTouchNode(Node *node)
{
	auto mng = LuaNodeManager::getInstance();
	auto lnode = mng->getLuaNodeByNode(node, false);
	if (!lnode) {
		return -1;
	}
	lnode->setLuaTouchEnabled(false);
	lnode->detachNode();  //this LuaEventNode will be removed in TouchTargetNode
	mng->removeLuaNode(lnode);
	return 0;
}