Пример #1
0
        public static void Enumeration <T>(LuaState lua)
        {
            #region Sanity checks
            if (lua == null)
            {
                throw new ArgumentNullException("lua");
            }
            #endregion

            Type type = typeof(T);
            if (!type.IsEnum)
            {
                throw new ArgumentException("The type must be an enumeration!");
            }

            string[] names  = Enum.GetNames(type);
            T[]      values = (T[])Enum.GetValues(type);

            lua.NewTable(type.Name);
            for (int i = 0; i < names.Length; i++)
            {
                string path = type.Name + "." + names[i];
                lua[path] = values[i];
            }
        }
        public static void Enumeration <T>(LuaState lua)
        {
            if (lua == null)
            {
                throw new ArgumentNullException("lua");
            }
            Type typeFromHandle = typeof(T);

            if (!typeFromHandle.IsEnum)
            {
                throw new ArgumentException("The type must be an enumeration!");
            }
            string[] names = Enum.GetNames(typeFromHandle);
            T[]      array = (T[])Enum.GetValues(typeFromHandle);
            lua.NewTable(typeFromHandle.Name);
            for (int i = 0; i < names.Length; i++)
            {
                string fullPath = typeFromHandle.Name + "." + names[i];
                lua[fullPath] = array[i];
            }
        }