示例#1
0
        //============================================================
        public bool DataUnserialize(FByteStream input)
        {
            int count = input.ReadInt32();

            for (int n = 0; n < count; n++)
            {
                string name = input.ReadStringA16();
                if (_geometryDictionary.Contains(name))
                {
                    FDrGeometry geometry = _geometryDictionary.Get(name);
                    if (!geometry.DataUnserialize(input))
                    {
                        return(false);
                    }
                }
                else
                {
                    FDrGeometry geometry = new FDrGeometry(_model);
                    if (!geometry.DataUnserialize(input))
                    {
                        return(false);
                    }
                    RMoCore.TrackConsole.Write(this, "DataUnserialize", "Can't find geometry config in model. (model={0}, geometry={1})", _model.Code, name);
                }
            }
            return(true);
        }
示例#2
0
        //============================================================
        // <T>执行处理。</T>
        //============================================================
        public void ProcessMessage()
        {
            // 读取头信息
            int  length     = _data.ReadInt32();
            int  type       = _data.ReadUint8();
            int  level      = _data.ReadUint8();
            long tick       = _data.ReadInt64();
            int  dataLength = length - 14;

            // 读取数据
            byte[] data = new byte[dataLength];
            _data.Read(data, 0, dataLength);
            string message = Encoding.ASCII.GetString(data);
            // 创建日志
            FLoggerInfo loggerInfo = new FLoggerInfo();

            loggerInfo.Tick    = tick;
            loggerInfo.Level   = level;
            loggerInfo.Message = message;
            // 放入应用中
            FFrameInfo info = _applicationInfo.SyncFrame(tick);

            info.Loggers.Push(loggerInfo);
        }