Beispiel #1
0
        /// <summary>
        /// 初始化LuaValue对象
        /// </summary>
        /// <param name="decoder">对象解码器</param>
        public LuaValue(LuaObjectDecoder decoder)
            : base(decoder)
        {
            int contextId = decoder.readInt32();

            _context = LuaContext.getContext(contextId);
            _tableId = decoder.readString();
            _type    = (LuaValueType)decoder.readInt16();
            _value   = null;

            switch (_type)
            {
            case LuaValueType.Integer:
                _value = decoder.readInt32();
                break;

            case LuaValueType.Boolean:
                _value = decoder.readByte();
                break;

            case LuaValueType.Number:
                _value = decoder.readDouble();
                break;

            case LuaValueType.Data:
                _value = decoder.readBytes();
                break;

            case LuaValueType.String:
                _value = decoder.readString();
                break;

            case LuaValueType.Array:
                _value = readArrayList(decoder);
                break;

            case LuaValueType.Map:
                _value = readHashtable(decoder);
                break;

            case LuaValueType.Function:
                _value = decoder.readObject() as LuaFunction;
                break;

            case LuaValueType.Ptr:
                _value = decoder.readObject() as LuaPointer;
                break;

            case LuaValueType.Tuple:
                _value = decoder.readObject() as LuaTuple;
                break;

            case LuaValueType.Object:
                _value = decoder.readObject();
                break;
            }
        }
Beispiel #2
0
        /// <summary>
        /// 初始化LuaValue对象
        /// </summary>
        /// <param name="decoder">对象解码器</param>
        public LuaValue(LuaObjectDecoder decoder)
        {
            _type  = (LuaValueType)decoder.readInt16();
            _value = null;

            switch (_type)
            {
            case LuaValueType.Integer:
                _value = decoder.readInt32();
                break;

            case LuaValueType.Boolean:
                _value = decoder.readByte();
                break;

            case LuaValueType.Number:
                _value = decoder.readDouble();
                break;

            case LuaValueType.Data:
                _value = decoder.readBytes();
                break;

            case LuaValueType.String:
                _value = decoder.readString();
                break;

            case LuaValueType.Array:
                _value = readArrayList(decoder);
                break;

            case LuaValueType.Map:
                _value = readHashtable(decoder);
                break;

            case LuaValueType.Object:
            {
                _value = decoder.readObject();
                break;
            }
            }
        }