public static int ClearInitedData(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            dataSectionThearchyTrail.ClearInitedData();
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int get_ChallengedNums(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, dataSectionThearchyTrail.ChallengedNums);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int constructor(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail o = new DataSectionThearchyTrail();
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, o);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int SerializeToClient(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            object o = dataSectionThearchyTrail.SerializeToClient();
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, o);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int GetAllFinishedLevels(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            HashSet <int>            allFinishedLevels        = dataSectionThearchyTrail.GetAllFinishedLevels();
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, allFinishedLevels);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int InitFinishedLevels(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            List <int> levels;
            LuaObject.checkType <List <int> >(l, 2, out levels);
            dataSectionThearchyTrail.InitFinishedLevels(levels);
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int AddChallengedNums(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            int nums;
            LuaObject.checkType(l, 2, out nums);
            dataSectionThearchyTrail.AddChallengedNums(nums);
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
    public static int AddFinishedLevel(IntPtr l)
    {
        int result;

        try
        {
            DataSectionThearchyTrail dataSectionThearchyTrail = (DataSectionThearchyTrail)LuaObject.checkSelf(l);
            int levelId;
            LuaObject.checkType(l, 2, out levelId);
            dataSectionThearchyTrail.AddFinishedLevel(levelId);
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }