public static bool IsArray(this LuaTable table, out LuaTableType tableType) { var i = 0; foreach (var tableKey in table.Keys) { if (tableKey is long j) { if (j != ++i) { var keys = table.Keys.Cast <object>().Select(k => $"({k.GetType().GetFriendlyName()}){k}"); throw new Exception($"Possible a none one-based array? keys: {string.Join(", ", keys)}"); // return false; } } else { if (i != 0) { // var keys = table.Keys.Cast<object>().Select(k => k.ToString()); // Console.WriteLine($"Hybrid Lua Array Table Found! count: {i}; keys: {string.Join(", ", keys)}"); tableType = LuaTableType.Hybrid; } else { tableType = LuaTableType.Class; } return(false); } } tableType = LuaTableType.Array; return(true); }
public ILuaTableReader this[LuaTableType t] { get { if (mDataReader.ContainsKey((byte)t)) { return(mDataReader[(byte)t]); } return(null); } }