ReadShort() публичный Метод

public ReadShort ( ) : ushort
Результат ushort
Пример #1
0
        override public void Setup_AfterAdd(ByteBuffer buffer, int beginPos)
        {
            base.Setup_AfterAdd(buffer, beginPos);

            if (!buffer.Seek(beginPos, 6))
            {
                return;
            }

            if ((ObjectType)buffer.ReadByte() != packageItem.objectType)
            {
                return;
            }

            string str;
            int    itemCount = buffer.ReadShort();

            _items  = new string[itemCount];
            _values = new string[itemCount];
            for (int i = 0; i < itemCount; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                _items[i]  = buffer.ReadS();
                _values[i] = buffer.ReadS();
                str        = buffer.ReadS();
                if (str != null)
                {
                    if (_icons == null)
                    {
                        _icons = new string[itemCount];
                    }
                    _icons[i] = str;
                }

                buffer.position = nextPos;
            }

            str = buffer.ReadS();
            if (str != null)
            {
                this.text      = str;
                _selectedIndex = Array.IndexOf(_items, str);
            }
            else if (_items.Length > 0)
            {
                _selectedIndex = 0;
                this.text      = _items[0];
            }
            else
            {
                _selectedIndex = -1;
            }

            str = buffer.ReadS();
            if (str != null)
            {
                this.icon = str;
            }

            if (buffer.ReadBool())
            {
                this.titleColor = buffer.ReadColor();
            }
            int iv = buffer.ReadInt();

            if (iv > 0)
            {
                visibleItemCount = iv;
            }
            _popupDirection = (PopupDirection)buffer.ReadByte();

            iv = buffer.ReadShort();
            if (iv >= 0)
            {
                _selectionController = parent.GetControllerAt(iv);
            }
        }
Пример #2
0
 //Reads the next short of the byteArray (2 bytes)
 public short readShort()
 {
     return(ByteBuffer.ReadShort());
 }
Пример #3
0
        void LoadFont(PackageItem item)
        {
            BitmapFont font = new BitmapFont(item);

            item.bitmapFont = font;
            ByteBuffer buffer = item.rawData;

            buffer.Seek(0, 0);

            bool ttf = buffer.ReadBool();

            font.colorEnabled = buffer.ReadBool();
            font.scaleEnabled = buffer.ReadBool();
            buffer.ReadBool();            //hasChannel
            int fontSize   = buffer.ReadInt();
            int xadvance   = buffer.ReadInt();
            int lineHeight = buffer.ReadInt();

            float       texScaleX   = 1;
            float       texScaleY   = 1;
            NTexture    mainTexture = null;
            AtlasSprite mainSprite  = null;

            if (ttf && _sprites.TryGetValue(item.id, out mainSprite))
            {
                mainTexture = (NTexture)GetItemAsset(mainSprite.atlas);
                texScaleX   = mainTexture.root.uvRect.Width / mainTexture.width;
                texScaleY   = mainTexture.root.uvRect.Height / mainTexture.height;
            }

            buffer.Seek(0, 1);

            BitmapFont.BMGlyph bg;
            int cnt = buffer.ReadInt();

            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                bg = new BitmapFont.BMGlyph();
                char ch = buffer.ReadChar();
                font.AddChar(ch, bg);

                string img = buffer.ReadS();
                int    bx  = buffer.ReadInt();
                int    by  = buffer.ReadInt();
                bg.offsetX = buffer.ReadInt();
                bg.offsetY = buffer.ReadInt();
                bg.width   = buffer.ReadInt();
                bg.height  = buffer.ReadInt();
                bg.advance = buffer.ReadInt();
                bg.channel = buffer.ReadByte();
                if (bg.channel == 1)
                {
                    bg.channel = 3;
                }
                else if (bg.channel == 2)
                {
                    bg.channel = 2;
                }
                else if (bg.channel == 3)
                {
                    bg.channel = 1;
                }

                if (ttf)
                {
                    if (mainSprite.rotated)
                    {
                        bg.uv[0] = new Vector2((float)(by + bg.height + mainSprite.rect.X) * texScaleX,
                                               1 - (float)(mainSprite.rect.Bottom - bx) * texScaleY);
                        bg.uv[1] = new Vector2(bg.uv[0].X - (float)bg.height * texScaleX, bg.uv[0].Y);
                        bg.uv[2] = new Vector2(bg.uv[1].X, bg.uv[0].Y + (float)bg.width * texScaleY);
                        bg.uv[3] = new Vector2(bg.uv[0].X, bg.uv[2].Y);
                    }
                    else
                    {
                        bg.uv[0] = new Vector2((float)(bx + mainSprite.rect.X) * texScaleX,
                                               1 - (float)(by + bg.height + mainSprite.rect.Y) * texScaleY);
                        bg.uv[1] = new Vector2(bg.uv[0].X, bg.uv[0].Y + (float)bg.height * texScaleY);
                        bg.uv[2] = new Vector2(bg.uv[0].X + (float)bg.width * texScaleX, bg.uv[1].Y);
                        bg.uv[3] = new Vector2(bg.uv[2].X, bg.uv[0].Y);
                    }

                    bg.lineHeight = lineHeight;
                }
                else
                {
                    PackageItem charImg;
                    if (_itemsById.TryGetValue(img, out charImg))
                    {
                        GetItemAsset(charImg);
                        charImg.texture.GetUV(bg.uv);
                        bg.width  = charImg.texture.width;
                        bg.height = charImg.texture.height;

                        if (mainTexture == null)
                        {
                            mainTexture = charImg.texture.root;
                        }
                    }

                    if (fontSize == 0)
                    {
                        fontSize = bg.height;
                    }

                    if (bg.advance == 0)
                    {
                        if (xadvance == 0)
                        {
                            bg.advance = bg.offsetX + bg.width;
                        }
                        else
                        {
                            bg.advance = xadvance;
                        }
                    }

                    bg.lineHeight = bg.offsetY < 0 ? bg.height : (bg.offsetY + bg.height);
                    if (bg.lineHeight < font.size)
                    {
                        bg.lineHeight = font.size;
                    }
                }

                buffer.position = nextPos;
            }

            font.size        = fontSize;
            font.mainTexture = mainTexture;
        }
Пример #4
0
    /// <summary>
    /// 接收到消息
    /// </summary>
    /// <param name="ms"></param>
    void OnReceivedMessage(MemoryStream ms)
    {
        BinaryReader r = new BinaryReader(ms);
        byte[] message = r.ReadBytes((int)(ms.Length - ms.Position));
        //int msglen = message.Length;

        ByteBuffer buffer = new ByteBuffer(message);
        int mainId = buffer.ReadShort();
        //NetworkManager.AddEvent(mainId, buffer);

		//TODO:notify receive message

    }
Пример #5
0
        bool LoadPackage(ByteBuffer buffer, string packageSource, string assetNamePrefix)
        {
            if (buffer.ReadUint() != 0x46475549)
            {
                if (Application.isPlaying)
                {
                    throw new Exception("FairyGUI: old package format found in '" + packageSource + "'");
                }
                else
                {
                    Debug.LogWarning("FairyGUI: old package format found in '" + packageSource + "'");
                    return(false);
                }
            }

            buffer.version = buffer.ReadInt();
            buffer.ReadBool(); //compressed
            id   = buffer.ReadString();
            name = buffer.ReadString();
            if (_packageInstById.ContainsKey(id) && name != _packageInstById[id].name)
            {
                Debug.LogWarning("FairyGUI: Package id conflicts, '" + name + "' and '" + _packageInstById[id].name + "'");
                return(false);
            }
            buffer.Skip(20);
            int indexTablePos = buffer.position;
            int cnt;

            buffer.Seek(indexTablePos, 4);

            cnt = buffer.ReadInt();
            string[] stringTable = new string[cnt];
            for (int i = 0; i < cnt; i++)
            {
                stringTable[i] = buffer.ReadString();
            }
            buffer.stringTable = stringTable;

            buffer.Seek(indexTablePos, 1);

            PackageItem pi;

            if (assetNamePrefix == null)
            {
                assetNamePrefix = string.Empty;
            }
            else if (assetNamePrefix.Length > 0)
            {
                assetNamePrefix = assetNamePrefix + "_";
            }

            cnt = buffer.ReadShort();
            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadInt();
                nextPos += buffer.position;

                pi       = new PackageItem();
                pi.owner = this;
                pi.type  = (PackageItemType)buffer.ReadByte();
                pi.id    = buffer.ReadS();
                pi.name  = buffer.ReadS();
                buffer.ReadS(); //path
                pi.file     = buffer.ReadS();
                pi.exported = buffer.ReadBool();
                pi.width    = buffer.ReadInt();
                pi.height   = buffer.ReadInt();

                switch (pi.type)
                {
                case PackageItemType.Image:
                {
                    pi.objectType = ObjectType.Image;
                    int scaleOption = buffer.ReadByte();
                    if (scaleOption == 1)
                    {
                        Rect rect = new Rect();
                        rect.x        = buffer.ReadInt();
                        rect.y        = buffer.ReadInt();
                        rect.width    = buffer.ReadInt();
                        rect.height   = buffer.ReadInt();
                        pi.scale9Grid = rect;

                        pi.tileGridIndice = buffer.ReadInt();
                    }
                    else if (scaleOption == 2)
                    {
                        pi.scaleByTile = true;
                    }

                    buffer.ReadBool();         //smoothing
                    break;
                }

                case PackageItemType.MovieClip:
                {
                    buffer.ReadBool();         //smoothing
                    pi.objectType = ObjectType.MovieClip;
                    pi.rawData    = buffer.ReadBuffer();
                    break;
                }

                case PackageItemType.Font:
                {
                    pi.rawData = buffer.ReadBuffer();
                    break;
                }

                case PackageItemType.Component:
                {
                    int extension = buffer.ReadByte();
                    if (extension > 0)
                    {
                        pi.objectType = (ObjectType)extension;
                    }
                    else
                    {
                        pi.objectType = ObjectType.Component;
                    }
                    pi.rawData = buffer.ReadBuffer();

                    UIObjectFactory.ResolvePackageItemExtension(pi);
                    break;
                }

                case PackageItemType.Atlas:
                case PackageItemType.Sound:
                case PackageItemType.Misc:
                {
                    pi.file = assetNamePrefix + pi.file;
                    break;
                }
                }
                _items.Add(pi);
                _itemsById[pi.id] = pi;
                if (pi.name != null)
                {
                    _itemsByName[pi.name] = pi;
                }

                buffer.position = nextPos;
            }

            buffer.Seek(indexTablePos, 2);

            cnt = buffer.ReadShort();
            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                string itemId = buffer.ReadS();
                pi = _itemsById[buffer.ReadS()];

                AtlasSprite sprite = new AtlasSprite();
                sprite.atlas       = pi;
                sprite.rect.x      = buffer.ReadInt();
                sprite.rect.y      = buffer.ReadInt();
                sprite.rect.width  = buffer.ReadInt();
                sprite.rect.height = buffer.ReadInt();
                sprite.rotated     = buffer.ReadBool();
                _sprites[itemId]   = sprite;

                buffer.position = nextPos;
            }

            if (buffer.Seek(indexTablePos, 3))
            {
                cnt = buffer.ReadShort();
                for (int i = 0; i < cnt; i++)
                {
                    int nextPos = buffer.ReadInt();
                    nextPos += buffer.position;

                    if (_itemsById.TryGetValue(buffer.ReadS(), out pi))
                    {
                        if (pi.type == PackageItemType.Image)
                        {
                            pi.pixelHitTestData = new PixelHitTestData();
                            pi.pixelHitTestData.Load(buffer);
                        }
                    }

                    buffer.position = nextPos;
                }
            }

            if (!Application.isPlaying)
            {
                _items.Sort(ComparePackageItem);
            }

            return(true);
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="clientid"></param>
        /// <param name="block"></param>
        private void ProcessSetHisData2(string clientid, ByteBuffer block)
        {
            Parent.AsyncCallback(clientid, ToByteBuffer(APIConst.HisValueFun, (byte)1));
            var service = ServiceLocator.Locator.Resolve <ITagHisValueProduct>();
            int count   = block.ReadInt();

            for (int i = 0; i < count; i++)
            {
                int     id = block.ReadInt();
                var     dt = DateTime.FromBinary(block.ReadLong());
                TagType tp = (TagType)block.ReadByte();
                switch (tp)
                {
                case TagType.Bool:
                    var bval = block.ReadByte();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    break;

                case TagType.Byte:
                    var btval = block.ReadByte();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, btval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = btval });
                    break;

                case TagType.Short:
                    var sbval = block.ReadShort();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, sbval, qa);
                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = sbval });
                    break;

                case TagType.UShort:
                    var usbval = block.ReadUShort();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, usbval, qa);
                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = usbval });
                    break;

                case TagType.Int:
                    var ibval = block.ReadInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, ibval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = ibval });
                    break;

                case TagType.UInt:
                    var uibval = block.ReadUInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, uibval, qa);
                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = uibval });
                    break;

                case TagType.Long:
                    var lbval = block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, lbval, qa);
                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = lbval });
                    break;

                case TagType.ULong:
                    var ulbval = (ulong)block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, ulbval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = ulbval });
                    break;

                case TagType.Float:
                    var fbval = block.ReadFloat();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, fbval, qa);

                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = fbval });
                    break;

                case TagType.Double:
                    var dbval = block.ReadDouble();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, dbval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = dbval });
                    break;

                case TagType.String:
                    var stbval = block.ReadString();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, stbval, qa);
                    // service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = stbval });
                    break;

                case TagType.DateTime:
                    var dtbval = DateTime.FromBinary(block.ReadLong());
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, dtbval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = dtbval });
                    break;

                case TagType.IntPoint:
                    var ival1 = block.ReadInt();
                    var ival2 = block.ReadInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, ival1, ival2);
                    break;

                case TagType.UIntPoint:
                    //var upbval = new UIntPointData() { X = block.ReadUnsignedInt(), Y = block.ReadUnsignedInt() };
                    var uival1 = block.ReadInt();
                    var uival2 = block.ReadInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, uival1, uival2);

                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = upbval });
                    break;

                case TagType.IntPoint3:
                    ival1 = block.ReadInt();
                    ival2 = block.ReadInt();
                    var ival3 = block.ReadInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, ival1, ival2, ival3);
                    break;

                case TagType.UIntPoint3:
                    uival1 = block.ReadInt();
                    uival2 = block.ReadInt();
                    var uival3 = block.ReadInt();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, uival1, uival2, uival3);
                    break;

                case TagType.LongPoint:
                    var lval1 = block.ReadLong();
                    var lval2 = block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, lval1, lval2);

                    //var lpbval = new LongPointData() { X = block.ReadLong(), Y = block.ReadLong() };
                    //qa = block.ReadByte();
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = lpbval });
                    break;

                case TagType.ULongPoint:
                    var ulval1 = (ulong)block.ReadLong();
                    var ulval2 = (ulong)block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, ulval1, ulval2);
                    //var ulpbval = new ULongPointData() { X = (ulong)block.ReadLong(), Y = (ulong)block.ReadLong() };
                    //qa = block.ReadByte();
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = ulpbval });
                    break;

                case TagType.LongPoint3:
                    lval1 = block.ReadLong();
                    lval2 = block.ReadLong();
                    var lval3 = block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, lval1, lval2, lval3);

                    //var lp3bval = new LongPoint3Data() { X = block.ReadLong(), Y = block.ReadLong(), Z = block.ReadLong() };
                    //qa = block.ReadByte();
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = lp3bval });
                    break;

                case TagType.ULongPoint3:
                    ulval1 = (ulong)block.ReadLong();
                    ulval2 = (ulong)block.ReadLong();
                    var ulval3 = (ulong)block.ReadLong();
                    qa = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, ulval1, ulval2, ulval3);
                    //var ulp3bval = new ULongPoint3Data() { X = (ulong)block.ReadLong(), Y = (ulong)block.ReadLong(), Z = (ulong)block.ReadLong() };
                    //qa = block.ReadByte();
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = ulp3bval });
                    break;
                }
            }
        }
Пример #7
0
    public static object GetObject(LuaTable table, ByteBuffer buffer)
    {
        // string name = LuaOpreate.getString(table, "Name");
        int type = LuaOpreate.getInt(table, "Type");

        if (type == (int)TypeCode.Int32)
        {
            var tInt = buffer.ReadInt();
            return(tInt);
        }
        else if (type == (int)TypeCode.UInt32)
        {
            return(buffer.ReadUInt());
        }
        else if (type == (int)TypeCode.UInt16)
        {
            return(buffer.ReadUShort());
        }
        else if (type == (int)TypeCode.Int16)
        {
            return(buffer.ReadShort());
        }
        else if (type == (int)TypeCode.Byte)
        {
            return(buffer.ReadByte());
        }
        else if (type == (int)TypeCode.Single)
        {
            return(buffer.ReadFloat());
        }
        else if (type == (int)TypeCode.String)
        {
            var str = buffer.ReadString();
            return(str);
        }
        else if (type == (int)TypeCode.Boolean)
        {
            return(buffer.ReadBoolean());
        }
        else if (type == (int)TypeCode.Int64)
        {
            return(buffer.ReadLong());
        }
        else if (type == TypeArray)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            var tablei = table["Table"] as LuaTable;

            for (int i = 0; i < len; i++)
            {
                arr.Add(GetObject(tablei[1] as LuaTable, buffer));
            }
            return(arr);
        }
        else if (type == TypeCustomArray)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            var tablei = table["Table"] as LuaTable;
            for (int i = 0; i < len; i++)
            {
                JObject obj = new JObject();
                for (int j = 0; j < tablei.Length; j++)
                {
                    var    tablej = tablei[j + 1] as LuaTable;
                    string name   = LuaOpreate.getString(tablej, "Name");
                    obj.Add(new JProperty(name, GetObject(tablej, buffer)));
                }
                arr.Add(obj);
            }
            return(arr);
        }
        return(null);
    }
Пример #8
0
        override public void Setup_AfterAdd(ByteBuffer buffer, int beginPos)
        {
            base.Setup_AfterAdd(buffer, beginPos);

            if (!buffer.Seek(beginPos, 6))
            {
                return;
            }

            if ((ObjectType)buffer.ReadByte() != packageItem.objectType)
            {
                return;
            }

            string str;

            str = buffer.ReadS();
            if (str != null)
            {
                this.title = str;
            }
            str = buffer.ReadS();
            if (str != null)
            {
                this.selectedTitle = str;
            }
            str = buffer.ReadS();
            if (str != null)
            {
                this.icon = str;
            }
            str = buffer.ReadS();
            if (str != null)
            {
                this.selectedIcon = str;
            }
            if (buffer.ReadBool())
            {
                this.titleColor = buffer.ReadColor();
            }
            int iv = buffer.ReadInt();

            if (iv != 0)
            {
                this.titleFontSize = iv;
            }
            iv = buffer.ReadShort();
            if (iv >= 0)
            {
                _relatedController = parent.GetControllerAt(iv);
            }
            _relatedPageId = buffer.ReadS();

            str = buffer.ReadS();
            if (str != null)
            {
                sound = UIPackage.GetItemAssetByURL(str) as NAudioClip;
            }
            if (buffer.ReadBool())
            {
                soundVolumeScale = buffer.ReadFloat();
            }

            this.selected = buffer.ReadBool();
        }
Пример #9
0
 public void Read(ByteBuffer buf) {
     PlayerId = (sbyte) buf.ReadByte();
     Location = new Vector3S { X = buf.ReadShort(), Z = buf.ReadShort(), Y = buf.ReadShort() };
     Yaw = buf.ReadByte();
     Pitch = buf.ReadByte();
 }
Пример #10
0
        override public void Setup_AfterAdd(ByteBuffer buffer, int beginPos)
        {
            base.Setup_AfterAdd(buffer, beginPos);

            if (!buffer.Seek(beginPos, 6))
            {
                return;
            }

            if ((ObjectType)buffer.ReadByte() != packageItem.objectType)
            {
                return;
            }

            string str;
            int    itemCount = buffer.ReadShort();

            for (int i = 0; i < itemCount; i++)
            {
                int nextPos = buffer.ReadUshort();
                nextPos += buffer.position;

                _items.Add(buffer.ReadS());
                _values.Add(buffer.ReadS());
                str = buffer.ReadS();
                if (str != null)
                {
                    if (_icons == null)
                    {
                        _icons = new List <string>();
                    }
                    _icons.Add(str);
                }

                buffer.position = nextPos;
            }

            str = buffer.ReadS();
            if (str != null)
            {
                this.text      = str;
                _selectedIndex = _items.IndexOf(str);
            }
            else if (_items.Count > 0)
            {
                _selectedIndex = 0;
                this.text      = _items[0];
            }
            else
            {
                _selectedIndex = -1;
            }

            str = buffer.ReadS();
            if (str != null)
            {
                this.icon = str;
            }

            if (buffer.ReadBool())
            {
                this.titleColor = buffer.ReadColor();
            }
            int iv = buffer.ReadInt();

            if (iv > 0)
            {
                visibleItemCount = iv;
            }
            _popupDirection = (PopupDirection)buffer.ReadByte();

            iv = buffer.ReadShort();
            if (iv >= 0)
            {
                _selectionController = parent.GetControllerAt(iv);
            }

            if (buffer.version >= 5)
            {
                str = buffer.ReadS();
                if (str != null)
                {
                    sound = UIPackage.GetItemAssetByURL(str) as NAudioClip;
                }
                soundVolumeScale = buffer.ReadFloat();
            }
        }
Пример #11
0
 public void Read(ByteBuffer buf) {
     X = buf.ReadShort();
     Z = buf.ReadShort();
     Y = buf.ReadShort();
     Block = buf.ReadByte();
 }
Пример #12
0
        internal void ConstructFromResource(List <GObject> objectPool, int poolIndex)
        {
            if (!packageItem.translated)
            {
                packageItem.translated = true;
                TranslationHelper.TranslateComponent(packageItem);
            }

            ByteBuffer buffer = packageItem.rawData;

            buffer.Seek(0, 0);

            underConstruct = true;

            sourceWidth  = buffer.ReadInt();
            sourceHeight = buffer.ReadInt();
            initWidth    = sourceWidth;
            initHeight   = sourceHeight;

            SetSize(sourceWidth, sourceHeight);

            if (buffer.ReadBool())
            {
                minWidth  = buffer.ReadInt();
                maxWidth  = buffer.ReadInt();
                minHeight = buffer.ReadInt();
                maxHeight = buffer.ReadInt();
            }

            if (buffer.ReadBool())
            {
                float f1 = buffer.ReadFloat();
                float f2 = buffer.ReadFloat();
                SetPivot(f1, f2, buffer.ReadBool());
            }

            if (buffer.ReadBool())
            {
                _margin.top    = buffer.ReadInt();
                _margin.bottom = buffer.ReadInt();
                _margin.left   = buffer.ReadInt();
                _margin.right  = buffer.ReadInt();
            }

            OverflowType overflow = (OverflowType)buffer.ReadByte();

            if (overflow == OverflowType.Scroll)
            {
                int savedPos = buffer.position;
                buffer.Seek(0, 7);
                SetupScroll(buffer);
                buffer.position = savedPos;
            }
            else
            {
                SetupOverflow(overflow);
            }

            if (buffer.ReadBool())             //clipSoftness
            {
                buffer.Skip(8);
            }

            _buildingDisplayList = true;

            buffer.Seek(0, 1);

            int controllerCount = buffer.ReadShort();

            for (int i = 0; i < controllerCount; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                Controller controller = new Controller();
                _controllers.Add(controller);
                controller.parent = this;
                controller.Setup(buffer);

                buffer.position = nextPos;
            }

            buffer.Seek(0, 2);

            GObject child;
            int     childCount = buffer.ReadShort();

            for (int i = 0; i < childCount; i++)
            {
                int dataLen = buffer.ReadShort();
                int curPos  = buffer.position;

                if (objectPool != null)
                {
                    child = objectPool[poolIndex + i];
                }
                else
                {
                    buffer.Seek(curPos, 0);

                    ObjectType type  = (ObjectType)buffer.ReadByte();
                    string     src   = buffer.ReadS();
                    string     pkgId = buffer.ReadS();

                    PackageItem pi = null;
                    if (src != null)
                    {
                        UIPackage pkg;
                        if (pkgId != null)
                        {
                            pkg = UIPackage.GetById(pkgId);
                        }
                        else
                        {
                            pkg = packageItem.owner;
                        }

                        pi = pkg != null?pkg.GetItem(src) : null;
                    }

                    if (pi != null)
                    {
                        child             = UIObjectFactory.NewObject(pi);
                        child.packageItem = pi;
                        child.ConstructFromResource();
                    }
                    else
                    {
                        child = UIObjectFactory.NewObject(type);
                    }
                }

                child.underConstruct = true;
                child.Setup_BeforeAdd(buffer, curPos);
                child.InternalSetParent(this);
                _children.Add(child);

                buffer.position = curPos + dataLen;
            }

            buffer.Seek(0, 3);
            this.relations.Setup(buffer, true);

            buffer.Seek(0, 2);
            buffer.Skip(2);

            for (int i = 0; i < childCount; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                buffer.Seek(buffer.position, 3);
                _children[i].relations.Setup(buffer, false);

                buffer.position = nextPos;
            }

            buffer.Seek(0, 2);
            buffer.Skip(2);

            for (int i = 0; i < childCount; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                child = _children[i];
                child.Setup_AfterAdd(buffer, buffer.position);
                child.underConstruct = false;

                buffer.position = nextPos;
            }

            buffer.Seek(0, 4);

            buffer.Skip(2);             //customData
            this.opaque = buffer.ReadBool();
            int maskId = buffer.ReadShort();

            if (maskId != -1)
            {
                this.mask = GetChildAt(maskId).displayObject;
                buffer.ReadBool();                 //reversedMask
            }
            string hitTestId = buffer.ReadS();

            if (hitTestId != null)
            {
                PackageItem pi = packageItem.owner.GetItem(hitTestId);
                if (pi != null && pi.pixelHitTestData != null)
                {
                    int i1 = buffer.ReadInt();
                    int i2 = buffer.ReadInt();
                    this.rootContainer.hitArea = new PixelHitTest(pi.pixelHitTestData, i1, i2);
                }
            }

            buffer.Seek(0, 5);

            int transitionCount = buffer.ReadShort();

            for (int i = 0; i < transitionCount; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                Transition trans = new Transition(this);
                trans.Setup(buffer);
                _transitions.Add(trans);

                buffer.position = nextPos;
            }

            if (_transitions.Count > 0)
            {
                this.onAddedToStage.Add(__addedToStage);
                this.onRemovedFromStage.Add(__removedFromStage);
            }

            ApplyAllControllers();

            _buildingDisplayList = false;
            underConstruct       = false;

            BuildNativeDisplayList();
            SetBoundsChangedFlag();

            if (packageItem.objectType != ObjectType.Component)
            {
                ConstructExtension(buffer);
            }

            OnConstruct();
        }
Пример #13
0
    public static object GetObject(ProtoDataType table, ByteBuffer buffer)
    {
        int type = table.Type;

        if (type == (int)TypeCode.Int32)
        {
            var tInt = buffer.ReadInt();
            return(tInt);
        }
        else if (type == (int)TypeCode.UInt32)
        {
            return(buffer.ReadUInt());
        }
        else if (type == (int)TypeCode.UInt16)
        {
            return(buffer.ReadUShort());
        }
        else if (type == (int)TypeCode.Int16)
        {
            return(buffer.ReadShort());
        }
        else if (type == (int)TypeCode.Byte)
        {
            return(buffer.ReadByte());
        }
        else if (type == (int)TypeCode.SByte)
        {
            return((sbyte)buffer.ReadByte());
        }
        else if (type == (int)TypeCode.Single)
        {
            return(buffer.ReadFloat());
        }
        else if (type == (int)TypeCode.String)
        {
            var str = buffer.ReadString();
            return(str);
        }
        else if (type == (int)TypeCode.Boolean)
        {
            return(buffer.ReadBoolean());
        }
        else if (type == (int)TypeCode.Int64)
        {
            return(buffer.ReadLong());
        }
        else if (type == TypeCodeList1)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            // var table1 = table[KeyTable].Value<JArray>()[0].Value<JObject>();
            var table1 = table.Table[0];

            for (int i = 0; i < len; i++)
            {
                arr.Add(GetObject(table1, buffer));
            }
            return(arr);
        }
        else if (type == TypeCodeList2)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            // var table1 = table[KeyTable].Value<JArray>();
            var table1 = table.Table;
            for (int i = 0; i < len; i++)
            {
                JObject obj = new JObject();
                for (int j = 0; j < table1.Length; j++)
                {
                    var    tablej = table1[j];
                    string name   = tablej.Name;
                    obj.Add(new JProperty(name, GetObject(tablej, buffer)));
                }
                arr.Add(obj);
            }
            return(arr);
        }
        else if (type == TypeCodeList3)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            for (int i = 0; i < len; i++)
            {
                JObject obj       = new JObject();
                var     enumTable = table.Table[0];
                int     enumIndex = -1;
                if (enumTable.Type == (int)TypeCode.Byte)
                {
                    var enumValue = buffer.ReadByte();
                    obj.Add(new JProperty(enumTable.Name, enumValue));
                    enumIndex = enumTable.EnumList.IndexOf(enumValue);
                }
                else if (enumTable.Type == (int)TypeCode.Int16)
                {
                    var enumValue = buffer.ReadShort();
                    obj.Add(new JProperty(enumTable.Name, enumValue));
                    enumIndex = enumTable.EnumList.IndexOf(enumValue);
                }

                if (enumIndex >= 0)
                {
                    var     table1 = table.Table[enumIndex + 1];
                    JObject obj1   = new JObject();
                    for (int j = 0; j < table1.Table.Length; j++)
                    {
                        obj1.Add(new JProperty(table1.Table[j].Name, GetObject(table1.Table[j], buffer)));
                    }
                    obj.Add(table1.Name, obj1);
                }
                arr.Add(obj);
            }
            return(arr);
        }
        else if (type == TypeProtocolList)
        {
            var    len = buffer.ReadUShort();
            JArray arr = new JArray();
            if (len == 0)
            {
                return(arr);
            }
            for (int i = 0; i < len; i++)
            {
                JObject obj      = new JObject();
                int     protoLen = buffer.ReadInt();
                ushort  protoID  = buffer.ReadUShort();
                obj.Add(new JProperty("ID", protoID));
                JObject data = new JObject();
                FillObject(data, ProtocolFactory.Instance.propsJsonDict[protoID], buffer, 1);
                obj.Add(new JProperty("Data", JsonConvert.SerializeObject(data)));
                arr.Add(obj);
            }
            return(arr);
        }
        return(null);
    }
Пример #14
0
 public void Read(ByteBuffer buf)
 {
     Distance = buf.ReadShort();
 }
Пример #15
0
 public static object GetObject(Type type, ByteBuffer buffer)
 {
     if (type.IsEnum)
     {
         //TODO:因为暂时没有用到,所以暂时不管枚举类
         return(0);
     }
     if (Type.GetTypeCode(type) == TypeCode.Int32)
     {
         var tInt = buffer.ReadInt();
         return(tInt);
     }
     else if (Type.GetTypeCode(type) == TypeCode.UInt32)
     {
         return(buffer.ReadUInt());
     }
     else if (Type.GetTypeCode(type) == TypeCode.UInt16)
     {
         return(buffer.ReadUShort());
     }
     else if (Type.GetTypeCode(type) == TypeCode.Int16)
     {
         return(buffer.ReadShort());
     }
     else if (Type.GetTypeCode(type) == TypeCode.Byte)
     {
         return(buffer.ReadByte());
     }
     else if (Type.GetTypeCode(type) == TypeCode.SByte)
     {
         return((sbyte)buffer.ReadByte());
     }
     else if (Type.GetTypeCode(type) == TypeCode.Single)
     {
         return(buffer.ReadFloat());
     }
     else if (Type.GetTypeCode(type) == TypeCode.String)
     {
         var str = buffer.ReadString();
         return(str);
     }
     else if (Type.GetTypeCode(type) == TypeCode.Boolean)
     {
         return(buffer.ReadBoolean());
     }
     else if (Type.GetTypeCode(type) == TypeCode.Int64)
     {
         return(buffer.ReadLong());
     }
     else if (Type.GetTypeCode(type) == TypeCode.Object)
     {
         if (type.IsAbstract)
         {
             var typeName = buffer.ReadString();
             // UnityEngine.Debug.Log(typeName);
             return(GetObject(Type.GetType(typeName), buffer));
         }
         else if (type.IsGenericType)
         {
             // UnityEngine.Debug.Log("arr:" + type.Name);
             var len = buffer.ReadUShort();
             //TODO:这里默认generic类型就是List类型!需要扩展的时候要进行修改!
             var constructor = type.GetConstructors()[0];
             var tType       = type.GetGenericArguments()[0];
             var list        = constructor.Invoke(new object[0]) as System.Collections.IList;
             for (int j = 0; j < len; j++)
             {
                 list.Add(GetObject(tType, buffer));
             }
             return(list);
         }
         else if (type.IsArray)
         {
             // UnityEngine.Debug.Log("arr:" + type.Name);
             var len         = buffer.ReadUShort();
             var constructor = type.GetConstructors()[0];
             var arr         = (Array)constructor.Invoke(new object[] { len });
             if (len == 0)
             {
                 return(arr);
             }
             var tType = Type.GetType(type.FullName.Replace("[]", string.Empty));
             for (int j = 0; j < len; j++)
             {
                 arr.SetValue(GetObject(tType, buffer), j);
             }
             return(arr);
         }
         else if (type.IsValueType)
         {
             // UnityEngine.Debug.Log("value type:" + type.FullName);
             if (type.Name.EndsWith("Rect"))
             {
                 return(new UnityEngine.Rect(buffer.ReadFloat(), buffer.ReadFloat(), buffer.ReadFloat(), buffer.ReadFloat()));
             }
             else if (type.Name.EndsWith("Vector2"))
             {
                 return(new UnityEngine.Vector2(buffer.ReadFloat(), buffer.ReadFloat()));
             }
             else if (type.Name.EndsWith("Vector3"))
             {
                 return(new UnityEngine.Vector3(buffer.ReadFloat(), buffer.ReadFloat(), buffer.ReadFloat()));
             }
             else if (type.Name.EndsWith("RectInt"))
             {
                 return(new UnityEngine.RectInt(buffer.ReadInt(), buffer.ReadInt(), buffer.ReadInt(), buffer.ReadInt()));
             }
         }
         else
         {
             var data   = type.GetConstructors()[0].Invoke(constructorParams);
             var tProps = type.GetProperties();
             FillObject(data, tProps, buffer);
             return(data);
         }
     }
     return(null);
 }
Пример #16
0
        override public void Setup_BeforeAdd(ByteBuffer buffer, int beginPos)
        {
            base.Setup_BeforeAdd(buffer, beginPos);

            buffer.Seek(beginPos, 5);

            int type = buffer.ReadByte();

            if (type != 0)
            {
                int     lineSize     = buffer.ReadInt();
                Color   lineColor    = buffer.ReadColor();
                Color   fillColor    = buffer.ReadColor();
                bool    roundedRect  = buffer.ReadBool();
                Vector4 cornerRadius = new Vector4();
                if (roundedRect)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        cornerRadius[i] = buffer.ReadFloat();
                    }
                }

                if (type == 1)
                {
                    if (roundedRect)
                    {
                        _shape.DrawRoundRect(lineSize, lineColor, fillColor, cornerRadius.x, cornerRadius.y, cornerRadius.z, cornerRadius.w);
                    }
                    else
                    {
                        _shape.DrawRect(lineSize, lineColor, fillColor);
                    }
                }
                else if (type == 2)
                {
                    _shape.DrawEllipse(lineSize, fillColor, lineColor, fillColor, 0, 360);
                }
                else if (type == 3)
                {
                    int       cnt    = buffer.ReadShort() / 2;
                    Vector2[] points = new Vector2[cnt];
                    for (int i = 0; i < cnt; i++)
                    {
                        points[i].Set(buffer.ReadFloat(), buffer.ReadFloat());
                    }

                    _shape.DrawPolygon(points, fillColor, lineSize, lineColor);
                }
                else if (type == 4)
                {
                    int     sides      = buffer.ReadShort();
                    float   startAngle = buffer.ReadFloat();
                    int     cnt        = buffer.ReadShort();
                    float[] distances  = null;
                    if (cnt > 0)
                    {
                        distances = new float[cnt];
                        for (int i = 0; i < cnt; i++)
                        {
                            distances[i] = buffer.ReadFloat();
                        }
                    }

                    _shape.DrawRegularPolygon(sides, lineSize, fillColor, lineColor, fillColor, startAngle, distances);
                }
            }
            originColor = color;
        }
Пример #17
0
        public void Setup(ByteBuffer buffer)
        {
            int beginPos = buffer.position;

            buffer.Seek(beginPos, 0);

            name = buffer.ReadS();
            autoRadioGroupDepth = buffer.ReadBool();

            buffer.Seek(beginPos, 1);

            int cnt = buffer.ReadShort();

            _pageIds.Capacity   = cnt;
            _pageNames.Capacity = cnt;
            for (int i = 0; i < cnt; i++)
            {
                _pageIds.Add(buffer.ReadS());
                _pageNames.Add(buffer.ReadS());
            }

            int homePageIndex = 0;

            if (buffer.version >= 2)
            {
                int homePageType = buffer.ReadByte();
                switch (homePageType)
                {
                case 1:
                    homePageIndex = buffer.ReadShort();
                    break;

                case 2:
                    homePageIndex = _pageNames.IndexOf(UIPackage.branch);
                    if (homePageIndex == -1)
                    {
                        homePageIndex = 0;
                    }
                    break;

                case 3:
                    homePageIndex = _pageNames.IndexOf(UIPackage.GetVar(buffer.ReadS()));
                    if (homePageIndex == -1)
                    {
                        homePageIndex = 0;
                    }
                    break;
                }
            }

            buffer.Seek(beginPos, 2);

            cnt = buffer.ReadShort();
            if (cnt > 0)
            {
                if (_actions == null)
                {
                    _actions = new List <ControllerAction>(cnt);
                }

                for (int i = 0; i < cnt; i++)
                {
                    int nextPos = buffer.ReadShort();
                    nextPos += buffer.position;

                    ControllerAction action = ControllerAction.CreateAction((ControllerAction.ActionType)buffer.ReadByte());
                    action.Setup(buffer);
                    _actions.Add(action);

                    buffer.position = nextPos;
                }
            }

            if (parent != null && _pageIds.Count > 0)
            {
                _selectedIndex = homePageIndex;
            }
            else
            {
                _selectedIndex = -1;
            }
        }
Пример #18
0
        void LoadFont(PackageItem item)
        {
            BitmapFont font = new BitmapFont(item);

            item.bitmapFont = font;
            ByteBuffer buffer = item.rawData;

            buffer.Seek(0, 0);

            bool ttf = buffer.ReadBool();

            font.canTint    = buffer.ReadBool();
            font.resizable  = buffer.ReadBool();
            font.hasChannel = buffer.ReadBool();
            int fontSize   = buffer.ReadInt();
            int xadvance   = buffer.ReadInt();
            int lineHeight = buffer.ReadInt();

            float       texScaleX   = 1;
            float       texScaleY   = 1;
            NTexture    mainTexture = null;
            AtlasSprite mainSprite  = null;

            if (ttf && _sprites.TryGetValue(item.id, out mainSprite))
            {
                mainTexture = (NTexture)GetItemAsset(mainSprite.atlas);
                texScaleX   = mainTexture.root.uvRect.width / mainTexture.width;
                texScaleY   = mainTexture.root.uvRect.height / mainTexture.height;
            }

            buffer.Seek(0, 1);

            BitmapFont.BMGlyph bg;
            int cnt = buffer.ReadInt();

            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                bg = new BitmapFont.BMGlyph();
                char ch = buffer.ReadChar();
                font.AddChar(ch, bg);

                string img = buffer.ReadS();
                int    bx  = buffer.ReadInt();
                int    by  = buffer.ReadInt();
                bg.offsetX = buffer.ReadInt();
                bg.offsetY = buffer.ReadInt();
                bg.width   = buffer.ReadInt();
                bg.height  = buffer.ReadInt();
                bg.advance = buffer.ReadInt();
                bg.channel = buffer.ReadByte();
                if (bg.channel == 1)
                {
                    bg.channel = 3;
                }
                else if (bg.channel == 2)
                {
                    bg.channel = 2;
                }
                else if (bg.channel == 3)
                {
                    bg.channel = 1;
                }

                if (ttf)
                {
                    if (mainSprite.rotated)
                    {
                        bg.uv[0] = new Vector2((float)(by + bg.height + mainSprite.rect.x) * texScaleX,
                                               1 - (float)(mainSprite.rect.yMax - bx) * texScaleY);
                        bg.uv[1] = new Vector2(bg.uv[0].x - (float)bg.height * texScaleX, bg.uv[0].y);
                        bg.uv[2] = new Vector2(bg.uv[1].x, bg.uv[0].y + (float)bg.width * texScaleY);
                        bg.uv[3] = new Vector2(bg.uv[0].x, bg.uv[2].y);
                    }
                    else
                    {
                        bg.uv[0] = new Vector2((float)(bx + mainSprite.rect.x) * texScaleX,
                                               1 - (float)(by + bg.height + mainSprite.rect.y) * texScaleY);
                        bg.uv[1] = new Vector2(bg.uv[0].x, bg.uv[0].y + (float)bg.height * texScaleY);
                        bg.uv[2] = new Vector2(bg.uv[0].x + (float)bg.width * texScaleX, bg.uv[1].y);
                        bg.uv[3] = new Vector2(bg.uv[2].x, bg.uv[0].y);
                    }

                    bg.lineHeight = lineHeight;
                }
                else
                {
                    PackageItem charImg;
                    if (_itemsById.TryGetValue(img, out charImg))
                    {
                        GetItemAsset(charImg);
                        Rect uvRect = charImg.texture.uvRect;
                        bg.uv[0] = uvRect.position;
                        bg.uv[1] = new Vector2(uvRect.xMin, uvRect.yMax);
                        bg.uv[2] = new Vector2(uvRect.xMax, uvRect.yMax);
                        bg.uv[3] = new Vector2(uvRect.xMax, uvRect.yMin);
                        if (charImg.texture.rotated)
                        {
                            NGraphics.RotateUV(bg.uv, ref uvRect);
                        }
                        bg.width  = charImg.texture.width;
                        bg.height = charImg.texture.height;

                        if (mainTexture == null)
                        {
                            mainTexture = charImg.texture.root;
                        }
                    }

                    if (fontSize == 0)
                    {
                        fontSize = bg.height;
                    }

                    if (bg.advance == 0)
                    {
                        if (xadvance == 0)
                        {
                            bg.advance = bg.offsetX + bg.width;
                        }
                        else
                        {
                            bg.advance = xadvance;
                        }
                    }

                    bg.lineHeight = bg.offsetY < 0 ? bg.height : (bg.offsetY + bg.height);
                    if (bg.lineHeight < font.size)
                    {
                        bg.lineHeight = font.size;
                    }
                }

                buffer.position = nextPos;
            }

            font.size        = fontSize;
            font.mainTexture = mainTexture;
            if (!font.hasChannel)
            {
                font.shader = ShaderConfig.imageShader;
            }
        }
Пример #19
0
 public object Read(ByteBuffer buffer, bool peek = false) => buffer.ReadShort(peek);
Пример #20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="clientid"></param>
        /// <param name="block"></param>
        private void ProcessSetHisData(string clientid, ByteBuffer block)
        {
            var id    = block.ReadInt();
            var count = block.ReadInt();
            var typ   = block.ReadByte();
            //int timedu = block.ReadInt();
            var service = ServiceLocator.Locator.Resolve <ITagHisValueProduct>();

            //List<TagValue> tagvalues = new List<TagValue>();
            switch (typ)
            {
            case (byte)TagType.Bool:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadByte();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id,new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Byte:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadByte();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Short:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadShort();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //  service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.UShort:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadUShort();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Int:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadInt();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.UInt:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadUInt();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Long:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadLong();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.ULong:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = (ulong)block.ReadLong();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Float:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadFloat();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.Double:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadDouble();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.String:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = block.ReadString();
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.DateTime:
                for (int i = 0; i < count; i++)
                {
                    var dt   = DateTime.FromBinary(block.ReadLong());
                    var bval = DateTime.FromBinary(block.ReadLong());
                    var qa   = block.ReadByte();
                    service.SetTagHisValue(id, dt, bval, qa);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.IntPoint:
                for (int i = 0; i < count; i++)
                {
                    var dt    = DateTime.FromBinary(block.ReadLong());
                    var bval1 = block.ReadInt();
                    var bval2 = block.ReadInt();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.UIntPoint:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    //var bval = new UIntPointData() { X = block.ReadUnsignedInt(), Y = block.ReadUnsignedInt() };
                    var bval1 = block.ReadUInt();
                    var bval2 = block.ReadUInt();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.IntPoint3:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    // var bval = new IntPoint3Data() { X = block.ReadInt(), Y = block.ReadInt(),Z=block.ReadInt() };
                    var bval1 = block.ReadInt();
                    var bval2 = block.ReadInt();
                    var bval3 = block.ReadInt();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2, bval3);
                    // service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.UIntPoint3:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    // var bval = new UIntPoint3Data() { X = block.ReadUnsignedInt(), Y = block.ReadUnsignedInt(), Z = block.ReadUnsignedInt() };
                    var bval1 = block.ReadUInt();
                    var bval2 = block.ReadUInt();
                    var bval3 = block.ReadUInt();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2, bval3);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.LongPoint:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    // var bval = new LongPointData() { X = block.ReadLong(), Y = block.ReadLong() };
                    var bval1 = block.ReadLong();
                    var bval2 = block.ReadLong();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2);
                    //service.SetTagHisValue(id, new TagValue() { Quality = qa, Time = dt, Value = bval });
                }
                break;

            case (byte)TagType.ULongPoint:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    //  var bval = new ULongPointData() { X = (ulong)block.ReadLong(), Y = (ulong)block.ReadLong() };
                    var bval1 = (ulong)block.ReadLong();
                    var bval2 = (ulong)block.ReadLong();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2);
                }
                break;

            case (byte)TagType.LongPoint3:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    // var bval = new LongPoint3Data() { X = block.ReadLong(), Y = block.ReadLong(),Z=block.ReadLong() };
                    var bval1 = block.ReadLong();
                    var bval2 = block.ReadLong();
                    var bval3 = block.ReadLong();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2, bval3);
                }
                break;

            case (byte)TagType.ULongPoint3:
                for (int i = 0; i < count; i++)
                {
                    var dt = DateTime.FromBinary(block.ReadLong());
                    //  var bval = new ULongPoint3Data() { X = (ulong)block.ReadLong(), Y = (ulong)block.ReadLong(), Z = (ulong)block.ReadLong() };
                    var bval1 = (ulong)block.ReadLong();
                    var bval2 = (ulong)block.ReadLong();
                    var bval3 = (ulong)block.ReadLong();
                    var qa    = block.ReadByte();
                    service.SetTagHisValue(id, dt, qa, bval1, bval2, bval3);
                }
                break;
            }


            //service.SetTagHisValue(id, tagvalues);

            Parent.AsyncCallback(clientid, ToByteBuffer(APIConst.HisValueFun, (byte)1));
        }
Пример #21
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="clientid"></param>
        /// <param name="block"></param>
        private void ProcessSetRealData(string clientid, ByteBuffer block)
        {
            var service = ServiceLocator.Locator.Resolve <IRealTagConsumer>();
            int count   = block.ReadInt();

            for (int i = 0; i < count; i++)
            {
                var    id    = block.ReadInt();
                byte   typ   = block.ReadByte();
                object value = null;
                switch (typ)
                {
                case (byte)TagType.Bool:
                    value = block.ReadByte();
                    break;

                case (byte)TagType.Byte:
                    value = block.ReadByte();
                    break;

                case (byte)TagType.Short:
                    value = block.ReadShort();
                    break;

                case (byte)TagType.UShort:
                    value = (ushort)block.ReadShort();
                    break;

                case (byte)TagType.Int:
                    value = block.ReadInt();
                    break;

                case (byte)TagType.UInt:
                    value = (uint)block.ReadInt();
                    break;

                case (byte)TagType.Long:
                    value = block.ReadLong();
                    break;

                case (byte)TagType.ULong:
                    value = (ulong)block.ReadLong();
                    break;

                case (byte)TagType.Float:
                    value = block.ReadFloat();
                    break;

                case (byte)TagType.Double:
                    value = block.ReadDouble();
                    break;

                case (byte)TagType.String:
                    value = block.ReadString();
                    break;

                case (byte)TagType.DateTime:
                    var tick = block.ReadLong();
                    value = new DateTime(tick);
                    break;

                case (byte)TagType.IntPoint:
                    value = new IntPointData(block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.UIntPoint:
                    value = new UIntPointData(block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.IntPoint3:
                    value = new IntPoint3Data(block.ReadInt(), block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.UIntPoint3:
                    value = new UIntPoint3Data(block.ReadInt(), block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.LongPoint:
                    value = new LongPointData(block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.ULongPoint:
                    value = new ULongPointData(block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.LongPoint3:
                    value = new LongPoint3Data(block.ReadLong(), block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.ULongPoint3:
                    value = new ULongPoint3Data(block.ReadLong(), block.ReadLong(), block.ReadLong());
                    break;
                }
                service.SetTagValueForConsumer(id, value);
            }
            Parent.AsyncCallback(clientid, ToByteBuffer(ApiFunConst.RealDataSetFun, (byte)1));
        }
Пример #22
0
        bool LoadPackage(ByteBuffer buffer)
        {
            if (buffer.ReadUint() != 0x46475549)
            {
                throw new Exception("FairyGUI: old package format found in '" + assetPath + "'");
            }

            buffer.version = buffer.ReadInt();
            buffer.ReadBool();             //compressed
            id   = buffer.ReadString();
            name = buffer.ReadString();
            if (_packageInstById.ContainsKey(id) && name != _packageInstById[id].name)
            {
                Log.Warning("FairyGUI: Package id conflicts, '" + name + "' and '" + _packageInstById[id].name + "'");
                return(false);
            }
            buffer.Skip(20);
            int indexTablePos = buffer.position;
            int cnt;

            buffer.Seek(indexTablePos, 4);

            cnt = buffer.ReadInt();
            string[] stringTable = new string[cnt];
            for (int i = 0; i < cnt; i++)
            {
                stringTable[i] = buffer.ReadString();
            }
            buffer.stringTable = stringTable;

            if (buffer.Seek(indexTablePos, 5))
            {
                cnt = buffer.ReadInt();
                for (int i = 0; i < cnt; i++)
                {
                    int index = buffer.ReadUshort();
                    int len   = buffer.ReadInt();
                    stringTable[index] = buffer.ReadString(len);
                }
            }

            buffer.Seek(indexTablePos, 1);

            PackageItem pi;

            cnt = buffer.ReadShort();
            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadInt();
                nextPos += buffer.position;

                pi       = new PackageItem();
                pi.owner = this;
                pi.type  = (PackageItemType)buffer.ReadByte();
                pi.id    = buffer.ReadS();
                pi.name  = buffer.ReadS();
                buffer.ReadS();                 //path
                pi.file     = buffer.ReadS();
                pi.exported = buffer.ReadBool();
                pi.width    = buffer.ReadInt();
                pi.height   = buffer.ReadInt();

                switch (pi.type)
                {
                case PackageItemType.Image:
                {
                    pi.objectType = ObjectType.Image;
                    int scaleOption = buffer.ReadByte();
                    if (scaleOption == 1)
                    {
                        Rectangle rect = new Rectangle();
                        rect.X        = buffer.ReadInt();
                        rect.Y        = buffer.ReadInt();
                        rect.Width    = buffer.ReadInt();
                        rect.Height   = buffer.ReadInt();
                        pi.scale9Grid = rect;

                        pi.tileGridIndice = buffer.ReadInt();
                    }
                    else if (scaleOption == 2)
                    {
                        pi.scaleByTile = true;
                    }

                    buffer.ReadBool();                                     //smoothing
                    break;
                }

                case PackageItemType.MovieClip:
                {
                    buffer.ReadBool();                                     //smoothing
                    pi.objectType = ObjectType.MovieClip;
                    pi.rawData    = buffer.ReadBuffer();
                    break;
                }

                case PackageItemType.Font:
                {
                    pi.rawData = buffer.ReadBuffer();
                    break;
                }

                case PackageItemType.Component:
                {
                    int extension = buffer.ReadByte();
                    if (extension > 0)
                    {
                        pi.objectType = (ObjectType)extension;
                    }
                    else
                    {
                        pi.objectType = ObjectType.Component;
                    }
                    pi.rawData = buffer.ReadBuffer();

                    UIObjectFactory.ResolvePackageItemExtension(pi);
                    break;
                }

                case PackageItemType.Atlas:
                case PackageItemType.Sound:
                case PackageItemType.Misc:
                {
                    pi.file = assetPath + "_" + Path.GetFileNameWithoutExtension(pi.file);
                    break;
                }
                }
                _items.Add(pi);
                _itemsById[pi.id] = pi;
                if (pi.name != null)
                {
                    _itemsByName[pi.name] = pi;
                }

                buffer.position = nextPos;
            }

            buffer.Seek(indexTablePos, 2);

            cnt = buffer.ReadShort();
            for (int i = 0; i < cnt; i++)
            {
                int nextPos = buffer.ReadShort();
                nextPos += buffer.position;

                string itemId = buffer.ReadS();
                pi = _itemsById[buffer.ReadS()];

                AtlasSprite sprite = new AtlasSprite();
                sprite.atlas       = pi;
                sprite.rect.X      = buffer.ReadInt();
                sprite.rect.Y      = buffer.ReadInt();
                sprite.rect.Width  = buffer.ReadInt();
                sprite.rect.Height = buffer.ReadInt();
                sprite.rotated     = buffer.ReadBool();
                _sprites[itemId]   = sprite;

                buffer.position = nextPos;
            }

            if (buffer.Seek(indexTablePos, 3))
            {
                cnt = buffer.ReadShort();
                for (int i = 0; i < cnt; i++)
                {
                    int nextPos = buffer.ReadInt();
                    nextPos += buffer.position;

                    if (_itemsById.TryGetValue(buffer.ReadS(), out pi))
                    {
                        if (pi.type == PackageItemType.Image)
                        {
                            pi.pixelHitTestData = new PixelHitTestData();
                            pi.pixelHitTestData.Load(buffer);
                        }
                    }

                    buffer.position = nextPos;
                }
            }

            buffer.Seek(indexTablePos, 0);
            cnt           = buffer.ReadShort();
            _dependencies = new Dictionary <string, string> [cnt];
            for (int i = 0; i < cnt; i++)
            {
                Dictionary <string, string> kv = new Dictionary <string, string>();
                kv.Add("id", buffer.ReadS());
                kv.Add("name", buffer.ReadS());
                _dependencies[i] = kv;
            }

            return(true);
        }
Пример #23
0
 public void Read(ByteBuffer buf)
 {
     Length  = buf.ReadShort();
     Data    = buf.ReadByteArray();
     Percent = buf.ReadByte();
 }
Пример #24
0
        public static void TranslateComponent(PackageItem item)
        {
            if (TranslationHelper.strings == null)
            {
                return;
            }

            Dictionary <string, string> strings;

            if (!TranslationHelper.strings.TryGetValue(item.owner.id + item.id, out strings))
            {
                return;
            }

            string     elementId, value;
            ByteBuffer buffer = item.rawData;

            buffer.Seek(0, 2);

            int childCount = buffer.ReadShort();

            for (int i = 0; i < childCount; i++)
            {
                int dataLen = buffer.ReadShort();
                int curPos  = buffer.position;

                buffer.Seek(curPos, 0);

                ObjectType baseType = (ObjectType)buffer.ReadByte();
                ObjectType type     = baseType;
                buffer.Skip(4);
                elementId = buffer.ReadS();

                if (type == ObjectType.Component)
                {
                    if (buffer.Seek(curPos, 6))
                    {
                        type = (ObjectType)buffer.ReadByte();
                    }
                }

                buffer.Seek(curPos, 1);

                if (strings.TryGetValue(elementId + "-tips", out value))
                {
                    buffer.WriteS(value);
                }

                buffer.Seek(curPos, 2);

                int gearCnt = buffer.ReadShort();
                for (int j = 0; j < gearCnt; j++)
                {
                    int nextPos = buffer.ReadUshort();
                    nextPos += buffer.position;

                    if (buffer.ReadByte() == 6) //gearText
                    {
                        buffer.Skip(2);         //controller
                        int valueCnt = buffer.ReadShort();
                        for (int k = 0; k < valueCnt; k++)
                        {
                            string page = buffer.ReadS();
                            if (page != null)
                            {
                                if (strings.TryGetValue(elementId + "-texts_" + k, out value))
                                {
                                    buffer.WriteS(value);
                                }
                                else
                                {
                                    buffer.Skip(2);
                                }
                            }
                        }

                        if (buffer.ReadBool() && strings.TryGetValue(elementId + "-texts_def", out value))
                        {
                            buffer.WriteS(value);
                        }
                    }

                    buffer.position = nextPos;
                }

                if (baseType == ObjectType.Component && buffer.version >= 2)
                {
                    buffer.Seek(curPos, 4);

                    buffer.Skip(2); //pageController

                    buffer.Skip(4 * buffer.ReadShort());

                    int cpCount = buffer.ReadShort();
                    for (int k = 0; k < cpCount; k++)
                    {
                        string target     = buffer.ReadS();
                        int    propertyId = buffer.ReadShort();
                        if (propertyId == 0 && strings.TryGetValue(elementId + "-cp-" + target, out value))
                        {
                            buffer.WriteS(value);
                        }
                        else
                        {
                            buffer.Skip(2);
                        }
                    }
                }

                switch (type)
                {
                case ObjectType.Text:
                case ObjectType.RichText:
                case ObjectType.InputText:
                {
                    if (strings.TryGetValue(elementId, out value))
                    {
                        buffer.Seek(curPos, 6);
                        buffer.WriteS(value);
                    }
                    if (strings.TryGetValue(elementId + "-prompt", out value))
                    {
                        buffer.Seek(curPos, 4);
                        buffer.WriteS(value);
                    }
                    break;
                }

                case ObjectType.List:
                case ObjectType.Tree:
                {
                    buffer.Seek(curPos, 8);
                    buffer.Skip(2);
                    int itemCount = buffer.ReadShort();
                    for (int j = 0; j < itemCount; j++)
                    {
                        int nextPos = buffer.ReadUshort();
                        nextPos += buffer.position;

                        buffer.Skip(2);         //url
                        if (type == ObjectType.Tree)
                        {
                            buffer.Skip(2);
                        }

                        //title
                        if (strings.TryGetValue(elementId + "-" + j, out value))
                        {
                            buffer.WriteS(value);
                        }
                        else
                        {
                            buffer.Skip(2);
                        }

                        //selected title
                        if (strings.TryGetValue(elementId + "-" + j + "-0", out value))
                        {
                            buffer.WriteS(value);
                        }
                        else
                        {
                            buffer.Skip(2);
                        }

                        if (buffer.version >= 2)
                        {
                            buffer.Skip(6);
                            buffer.Skip(buffer.ReadShort() * 4);        //controllers

                            int cpCount = buffer.ReadShort();
                            for (int k = 0; k < cpCount; k++)
                            {
                                string target     = buffer.ReadS();
                                int    propertyId = buffer.ReadShort();
                                if (propertyId == 0 && strings.TryGetValue(elementId + "-" + j + "-" + target, out value))
                                {
                                    buffer.WriteS(value);
                                }
                                else
                                {
                                    buffer.Skip(2);
                                }
                            }
                        }

                        buffer.position = nextPos;
                    }
                    break;
                }

                case ObjectType.Label:
                {
                    if (buffer.Seek(curPos, 6) && (ObjectType)buffer.ReadByte() == type)
                    {
                        if (strings.TryGetValue(elementId, out value))
                        {
                            buffer.WriteS(value);
                        }
                        else
                        {
                            buffer.Skip(2);
                        }

                        buffer.Skip(2);
                        if (buffer.ReadBool())
                        {
                            buffer.Skip(4);
                        }
                        buffer.Skip(4);
                        if (buffer.ReadBool() && strings.TryGetValue(elementId + "-prompt", out value))
                        {
                            buffer.WriteS(value);
                        }
                    }
                    break;
                }

                case ObjectType.Button:
                {
                    if (buffer.Seek(curPos, 6) && (ObjectType)buffer.ReadByte() == type)
                    {
                        if (strings.TryGetValue(elementId, out value))
                        {
                            buffer.WriteS(value);
                        }
                        else
                        {
                            buffer.Skip(2);
                        }
                        if (strings.TryGetValue(elementId + "-0", out value))
                        {
                            buffer.WriteS(value);
                        }
                    }
                    break;
                }

                case ObjectType.ComboBox:
                {
                    if (buffer.Seek(curPos, 6) && (ObjectType)buffer.ReadByte() == type)
                    {
                        int itemCount = buffer.ReadShort();
                        for (int j = 0; j < itemCount; j++)
                        {
                            int nextPos = buffer.ReadUshort();
                            nextPos += buffer.position;

                            if (strings.TryGetValue(elementId + "-" + j, out value))
                            {
                                buffer.WriteS(value);
                            }

                            buffer.position = nextPos;
                        }

                        if (strings.TryGetValue(elementId, out value))
                        {
                            buffer.WriteS(value);
                        }
                    }

                    break;
                }
                }

                buffer.position = curPos + dataLen;
            }
        }
Пример #25
0
 public void Read(ByteBuffer buf)
 {
     SizeX = buf.ReadShort();
     SizeZ = buf.ReadShort();
     SizeY = buf.ReadShort();
 }
Пример #26
0
        public void Setup(ByteBuffer buffer)
        {
            _controller = _owner.parent.GetControllerAt(buffer.ReadShort());
            Init();

            int cnt = buffer.ReadShort();

            if (this is GearDisplay)
            {
                ((GearDisplay)this).pages = buffer.ReadSArray(cnt);
            }
            else if (this is GearDisplay2)
            {
                ((GearDisplay2)this).pages = buffer.ReadSArray(cnt);
            }
            else
            {
                for (int i = 0; i < cnt; i++)
                {
                    string page = buffer.ReadS();
                    if (page == null)
                    {
                        continue;
                    }

                    AddStatus(page, buffer);
                }

                if (buffer.ReadBool())
                {
                    AddStatus(null, buffer);
                }
            }

            if (buffer.ReadBool())
            {
                _tweenConfig          = new GearTweenConfig();
                _tweenConfig.easeType = (EaseType)buffer.ReadByte();
                _tweenConfig.duration = buffer.ReadFloat();
                _tweenConfig.delay    = buffer.ReadFloat();
            }

            if (buffer.version >= 2)
            {
                if (this is GearXY)
                {
                    if (buffer.ReadBool())
                    {
                        ((GearXY)this).positionsInPercent = true;
                        for (int i = 0; i < cnt; i++)
                        {
                            string page = buffer.ReadS();
                            if (page == null)
                            {
                                continue;
                            }

                            ((GearXY)this).AddExtStatus(page, buffer);
                        }

                        if (buffer.ReadBool())
                        {
                            ((GearXY)this).AddExtStatus(null, buffer);
                        }
                    }
                }
                else if (this is GearDisplay2)
                {
                    ((GearDisplay2)this).condition = buffer.ReadByte();
                }
            }

            if (buffer.version >= 4 && _tweenConfig != null && _tweenConfig.easeType == EaseType.Custom)
            {
                _tweenConfig.customEase = new CustomEase();
                _tweenConfig.customEase.Create(buffer.ReadPath());
            }
        }
Пример #27
0
 public void Read(ByteBuffer buf)
 {
     AppName        = buf.ReadString();
     ExtensionCount = buf.ReadShort();
 }
Пример #28
0
        override protected void ReadItems(ByteBuffer buffer)
        {
            int       nextPos;
            string    str;
            bool      isFolder;
            GTreeNode lastNode = null;
            int       level;
            int       prevLevel = 0;

            int cnt = buffer.ReadShort();

            for (int i = 0; i < cnt; i++)
            {
                nextPos  = buffer.ReadShort();
                nextPos += buffer.position;

                str = buffer.ReadS();
                if (str == null)
                {
                    str = this.defaultItem;
                    if (str == null)
                    {
                        buffer.position = nextPos;
                        continue;
                    }
                }

                isFolder = buffer.ReadBool();
                level    = buffer.ReadByte();

                GTreeNode node = new GTreeNode(isFolder, str);
                node.expanded = true;
                if (i == 0)
                {
                    _rootNode.AddChild(node);
                }
                else
                {
                    if (level > prevLevel)
                    {
                        lastNode.AddChild(node);
                    }
                    else if (level < prevLevel)
                    {
                        for (int j = level; j <= prevLevel; j++)
                        {
                            lastNode = lastNode.parent;
                        }
                        lastNode.AddChild(node);
                    }
                    else
                    {
                        lastNode.parent.AddChild(node);
                    }
                }
                lastNode  = node;
                prevLevel = level;

                SetupItem(buffer, node.cell);

                buffer.position = nextPos;
            }
        }
Пример #29
0
        private void ProcessSingleBufferData(ByteBuffer block)
        {
            if (block == null)
            {
                return;
            }
            var count = block.ReadInt();

            for (int i = 0; i < count; i++)
            {
                var vid = block.ReadInt();
                if (vid < 0)
                {
                    Debug.Print("Invaild value!");
                }
                var    typ   = block.ReadByte();
                object value = null;
                switch (typ)
                {
                case (byte)TagType.Bool:
                    value = block.ReadByte();
                    break;

                case (byte)TagType.Byte:
                    value = block.ReadByte();
                    break;

                case (byte)TagType.Short:
                    value = block.ReadShort();
                    break;

                case (byte)TagType.UShort:
                    value = (ushort)block.ReadShort();
                    break;

                case (byte)TagType.Int:
                    value = block.ReadInt();
                    break;

                case (byte)TagType.UInt:
                    value = Convert.ToUInt32(block.ReadInt());
                    break;

                case (byte)TagType.Long:
                    value = block.ReadLong();
                    break;

                case (byte)TagType.ULong:
                    value = (ulong)block.ReadLong();
                    break;

                case (byte)TagType.Float:
                    value = block.ReadFloat();
                    break;

                case (byte)TagType.Double:
                    value = block.ReadDouble();
                    break;

                case (byte)TagType.String:
                    value = ReadString(block);
                    break;

                case (byte)TagType.DateTime:
                    var tick = block.ReadLong();
                    value = new DateTime(tick);
                    break;

                case (byte)TagType.IntPoint:
                    value = new IntPointData(block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.UIntPoint:
                    value = new UIntPointData(block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.IntPoint3:
                    value = new IntPoint3Data(block.ReadInt(), block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.UIntPoint3:
                    value = new UIntPoint3Data(block.ReadInt(), block.ReadInt(), block.ReadInt());
                    break;

                case (byte)TagType.LongPoint:
                    value = new LongPointData(block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.ULongPoint:
                    value = new ULongPointData(block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.LongPoint3:
                    value = new LongPoint3Data(block.ReadLong(), block.ReadLong(), block.ReadLong());
                    break;

                case (byte)TagType.ULongPoint3:
                    value = new ULongPoint3Data(block.ReadLong(), block.ReadLong(), block.ReadLong());
                    break;
                }
                var time = new DateTime(block.ReadLong());
                var qua  = block.ReadByte();
                mServier.SetTagValue(vid, ref value, time, qua);
            }
            block.UnlockAndReturn();
        }