Browse Source

Add: OpenTableLibrary

AnnulusGames 1 year ago
parent
commit
fdadaa3e1a
1 changed files with 21 additions and 0 deletions
  1. 21 0
      src/Lua/Standard/OpenLibExtensions.cs

+ 21 - 0
src/Lua/Standard/OpenLibExtensions.cs

@@ -2,6 +2,7 @@ using Lua.Standard.Basic;
 using Lua.Standard.Coroutines;
 using Lua.Standard.Coroutines;
 using Lua.Standard.Mathematics;
 using Lua.Standard.Mathematics;
 using Lua.Standard.Modules;
 using Lua.Standard.Modules;
+using Lua.Standard.Table;
 
 
 namespace Lua.Standard;
 namespace Lua.Standard;
 
 
@@ -62,6 +63,15 @@ public static class OpenLibExtensions
         TanhFunction.Instance,
         TanhFunction.Instance,
     ];
     ];
 
 
+    static readonly LuaFunction[] tableFunctions = [
+        PackFunction.Instance,
+        UnpackFunction.Instance,
+        RemoveFunction.Instance,
+        ConcatFunction.Instance,
+        InsertFunction.Instance,
+        SortFunction.Instance,
+    ];
+
     public static void OpenBasicLibrary(this LuaState state)
     public static void OpenBasicLibrary(this LuaState state)
     {
     {
         // basic
         // basic
@@ -107,4 +117,15 @@ public static class OpenLibExtensions
         
         
         state.Environment[RequireFunction.Instance.Name] = RequireFunction.Instance;
         state.Environment[RequireFunction.Instance.Name] = RequireFunction.Instance;
     }
     }
+
+    public static void OpenTableLibrary(this LuaState state)
+    {
+        var table = new LuaTable(0, tableFunctions.Length);
+        foreach (var func in tableFunctions)
+        {
+            table[func.Name] = func;
+        }
+
+        state.Environment["table"] = table;
+    }
 }
 }