Exemplo n.º 1
0
    public LuaValue Get(string key)
    {
        if (key == "")
        {
            return(this);
        }

        switch (LVT)
        {
        case LuaValueType.LVT_Nil:
        case LuaValueType.LVT_String:
        case LuaValueType.LVT_Float:
        case LuaValueType.LVT_Bool:
            return(null);

        case LuaValueType.LVT_Table:
        {
            int    dotIndex   = key.IndexOf('.');
            string currentKey = key;
            if (dotIndex != -1)
            {
                currentKey = key.Substring(0, dotIndex);
            }

            LuaValue val = null;
            if (TableValue.TryGetValue(currentKey, out val))
            {
                if (dotIndex == -1)
                {
                    return(val);
                }
                else
                {
                    string nextKey = key.Substring(dotIndex + 1);
                    return(val.Get(nextKey));
                }
            }

            return(null);
        }

        default:
            Debug.LogError("Invalid LVT.");
            return(null);
        }
    }
Exemplo n.º 2
0
 public LuaValue Get(string key)
 {
     return(_root.Get(key));
 }