public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_CleanRow.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRCleanRow>[] offsets = new Offset <DRCleanRow> [4];

            offsets[0] = DRCleanRow.CreateDRCleanRow(fbb, 1, fbb.CreateString("消除1行"), 0, 1, -1);
            offsets[1] = DRCleanRow.CreateDRCleanRow(fbb, 2, fbb.CreateString("消除2行飞机"), 1, 20, -1);
            offsets[2] = DRCleanRow.CreateDRCleanRow(fbb, 3, fbb.CreateString("消除3行魔法棒"), 2, 7, 22);
            offsets[3] = DRCleanRow.CreateDRCleanRow(fbb, 4, fbb.CreateString("消除4行扭蛋"), 3, 21, -1);

            VectorOffset dataOff   = Table_CleanRow.CreateDataVector(fbb, offsets);
            var          configOff = Table_CleanRow.CreateTable_CleanRow(fbb, dataOff);

            Table_CleanRow.FinishTable_CleanRowBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #2
0
        private static Offset <NodeInputFieldInfo> ConvertToRuntimeInputPortInfo(FlatBufferBuilder fbb, InputPortEditorView inputPortView)
        {
            InputPortReflectionInfo inputPortReflectionInfo = inputPortView.inputPortReflectionInfo;

            StringOffset fieldNameOffset =
                fbb.CreateString(inputPortView.inputPortReflectionInfo.nodeInputVariableFieldInfo.Name);
            StringOffset inputValueTypeName = fbb.CreateString(inputPortReflectionInfo.inputValueType.FullName);

            if (inputPortView.connectedPortList.Count > 0)
            {
                NodeInputFieldInfo.StartNodeInputFieldInfo(fbb);
                NodeInputFieldInfo.AddTargetNodeId(fbb, inputPortView.connectedPortList[0].NodeView.NodeId);
                NodeInputFieldInfo.AddTargetPortId(fbb, inputPortView.connectedPortList[0].portId);
            }
            else
            {
                StringOffset inputValueString = fbb.CreateString(inputPortReflectionInfo.GetNodeVariableValueString());

                NodeInputFieldInfo.StartNodeInputFieldInfo(fbb);
                NodeInputFieldInfo.AddTargetNodeId(fbb, -1);
                NodeInputFieldInfo.AddTargetPortId(fbb, -1);
                NodeInputFieldInfo.AddValueString(fbb, inputValueString);
            }

            NodeInputFieldInfo.AddValueTypeName(fbb, inputValueTypeName);
            NodeInputFieldInfo.AddFieldName(fbb, fieldNameOffset);
            return(NodeInputFieldInfo.EndNodeInputFieldInfo(fbb));
        }
예제 #3
0
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_BuildingLevel.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRBuildingLevel>[] offsets = new Offset <DRBuildingLevel> [5];

            offsets[0] = DRBuildingLevel.CreateDRBuildingLevel(fbb, 1, fbb.CreateString("世界树"), 7, 1, 1000, 0.1f, 1, fbb.CreateString("#{Building_1}"));
            offsets[1] = DRBuildingLevel.CreateDRBuildingLevel(fbb, 2, fbb.CreateString("世界树"), 7, 2, 2000, 0.2f, 2, fbb.CreateString("#{Building_1}"));
            offsets[2] = DRBuildingLevel.CreateDRBuildingLevel(fbb, 3, fbb.CreateString("世界树"), 7, 3, 3000, 0.3f, 3, fbb.CreateString("#{Building_1}"));
            offsets[3] = DRBuildingLevel.CreateDRBuildingLevel(fbb, 4, fbb.CreateString("世界树"), 7, 4, 4000, 0.4f, 4, fbb.CreateString("#{Building_1}"));
            offsets[4] = DRBuildingLevel.CreateDRBuildingLevel(fbb, 5, fbb.CreateString("世界树"), 7, 5, 5000, 0.5f, 5, fbb.CreateString("#{Building_1}"));

            VectorOffset dataOff   = Table_BuildingLevel.CreateDataVector(fbb, offsets);
            var          configOff = Table_BuildingLevel.CreateTable_BuildingLevel(fbb, dataOff);

            Table_BuildingLevel.FinishTable_BuildingLevelBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #4
0
        public static Offset <FlatGeobuf.Column> Pack(FlatBufferBuilder builder, ColumnT _o)
        {
            if (_o == null)
            {
                return(default(Offset <FlatGeobuf.Column>));
            }
            var _name        = _o.Name == null ? default(StringOffset) : builder.CreateString(_o.Name);
            var _title       = _o.Title == null ? default(StringOffset) : builder.CreateString(_o.Title);
            var _description = _o.Description == null ? default(StringOffset) : builder.CreateString(_o.Description);
            var _metadata    = _o.Metadata == null ? default(StringOffset) : builder.CreateString(_o.Metadata);

            return(CreateColumn(
                       builder,
                       _name,
                       _o.Type,
                       _title,
                       _description,
                       _o.Width,
                       _o.Precision,
                       _o.Scale,
                       _o.Nullable,
                       _o.Unique,
                       _o.PrimaryKey,
                       _metadata));
        }
예제 #5
0
        public byte[] GetResultBytes()
        {
            var builder   = new FlatBufferBuilder(1);
            var paramName = builder.CreateString("ParagraphID");             // TODO здесь надо передавать результат выполнения операции
            var paramVal  = builder.CreateString(ParagraphID.ToString());
            var parms     = new Offset <Param> [1];

            parms[0] = Param.CreateParam(builder, paramName, paramVal);
            var          paracol  = Message.CreateParamsVector(builder, parms);
            VectorOffset sentscol = default(VectorOffset);

            sentscol = SentenceMap.BuildSentOffsetFromSentStructList(builder, this.sentlist);

            Message.StartMessage(builder);
            Message.AddMessType(builder, MessType.mReplay);
            Message.AddServerType(builder, ServType.svSUBD);
            Message.AddComtype(builder, command);
            Message.AddParams(builder, paracol);
            Message.AddSentences(builder, sentscol);
            Message.AddDbID(builder, ParagraphID);
            var req = Message.EndMessage(builder);

            builder.Finish(req.Value);
            return(builder.SizedByteArray());
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_FMODMusic.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRFMODMusic>[] offsets = new Offset <DRFMODMusic> [3];

            offsets[0] = DRFMODMusic.CreateDRFMODMusic(fbb, 1, fbb.CreateString("选择关卡场景音乐"), fbb.CreateString("event:/Music/BGM_Maincity(linshi)"));
            offsets[1] = DRFMODMusic.CreateDRFMODMusic(fbb, 2, fbb.CreateString("战斗背景音乐"), fbb.CreateString("event:/Music/BGM_Theme"));
            offsets[2] = DRFMODMusic.CreateDRFMODMusic(fbb, 3, fbb.CreateString("原厂背景音"), fbb.CreateString("event:/Music/BGM_Theme_1"));

            VectorOffset dataOff   = Table_FMODMusic.CreateDataVector(fbb, offsets);
            var          configOff = Table_FMODMusic.CreateTable_FMODMusic(fbb, dataOff);

            Table_FMODMusic.FinishTable_FMODMusicBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #7
0
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_GuideGroup.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRGuideGroup>[] offsets = new Offset <DRGuideGroup> [2];

            offsets[0] = DRGuideGroup.CreateDRGuideGroup(fbb, 1, fbb.CreateString("第1组"), -1, 2, -1, -1, -1, fbb.CreateString("1:2:3:4:5:6:7:8:9:101:102:103:10:60001:60003:60004:105"), 0, fbb.CreateString("11:13"), 1, fbb.CreateString("14"), -1, fbb.CreateString("null"), fbb.CreateString("null"), -1, -1, -1, 1, 0, 0);
            offsets[1] = DRGuideGroup.CreateDRGuideGroup(fbb, 2, fbb.CreateString("第2组"), -1, 3, -1, -1, -1, fbb.CreateString("213:214:215:216:219:220:331:222:333:334:338:339:340:342"), 0, fbb.CreateString("108"), 1, fbb.CreateString("107"), 0, fbb.CreateString("3|4"), fbb.CreateString("10001|10002:10003:10004"), -1, -1, -1, 2, 1, 0);

            VectorOffset dataOff   = Table_GuideGroup.CreateDataVector(fbb, offsets);
            var          configOff = Table_GuideGroup.CreateTable_GuideGroup(fbb, dataOff);

            Table_GuideGroup.FinishTable_GuideGroupBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_Worker.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRWorker>[] offsets = new Offset <DRWorker> [5];

            offsets[0] = DRWorker.CreateDRWorker(fbb, 1, fbb.CreateString("工人1"), 1, 1000, 5000, 1, 5, fbb.CreateString("搬运工"), 59005);
            offsets[1] = DRWorker.CreateDRWorker(fbb, 2, fbb.CreateString("工人2"), 2, 2000, 10000, 2, 5, fbb.CreateString("清洁工"), 59006);
            offsets[2] = DRWorker.CreateDRWorker(fbb, 3, fbb.CreateString("工人3"), 3, 3000, 15000, 3, 5, fbb.CreateString("维修工"), 59007);
            offsets[3] = DRWorker.CreateDRWorker(fbb, 4, fbb.CreateString("工人4"), 4, 4000, 20000, 4, 5, fbb.CreateString("研究员"), 59008);
            offsets[4] = DRWorker.CreateDRWorker(fbb, 5, fbb.CreateString("工人5"), 5, 5000, 25000, 5, 5, fbb.CreateString("产品经理"), 59009);

            VectorOffset dataOff   = Table_Worker.CreateDataVector(fbb, offsets);
            var          configOff = Table_Worker.CreateTable_Worker(fbb, dataOff);

            Table_Worker.FinishTable_WorkerBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #9
0
        /// <summary>
        ///  used by Editor Filewatcher Event
        /// </summary>
        /// <param name="localFile"></param>
        /// <returns></returns>
        public override FBNetData CreateFBData(FlatBufferBuilder fbbParent, IFBObject child = null)
        {
            var fileOffset = XFBType.LocalFile.CreateLocalFile(fbbParent, FileLocation,
                                                               fbbParent.CreateString(FileName ?? ""),
                                                               fbbParent.CreateString(FilePath ?? ""),
                                                               fbbParent.CreateString(ResourceGroup ?? ""));

            VectorOffset texturesOffset = new VectorOffset();

            if (Textures.Count > 0)
            {
                List <int> texturesOffsets = new List <int>();
                foreach (var texture in Textures)
                {
                    texturesOffsets.Add(fbbParent.CreateString(texture.FileName).Value);
                }

                XFBType.Material.StartTexturesVector(fbbParent, Textures.Count);
                foreach (var texture in texturesOffsets)
                {
                    fbbParent.AddOffset(texture);
                }
                texturesOffset = fbbParent.EndVector();
            }

            var name   = fbbParent.CreateString(Name ?? "");
            var offset = XFBType.Material.CreateMaterial(fbbParent, fileOffset, texturesOffset, TextureType, name);


            fbbParent.Finish(offset.Value); //!!!!! important ..
            return(new FBNetData()
            {
                _fbData = fbbParent.SizedByteArray(), _offset = offset.Value, Fbb = fbbParent, TypeSafeOffset = offset
            });                                                                                                                                 //bytebuffer
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_OpenFunction.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DROpenFunction>[] offsets = new Offset <DROpenFunction> [2];

            offsets[0] = DROpenFunction.CreateDROpenFunction(fbb, 1, fbb.CreateString("功能开启"), fbb.CreateString("Icons/Item_Gold_finger"), fbb.CreateString("建筑"), 0, 1, 5f, 0);
            offsets[1] = DROpenFunction.CreateDROpenFunction(fbb, 2, fbb.CreateString("功能开启"), fbb.CreateString("Icons/Item_Gold_finger"), fbb.CreateString("打造"), 0, 2, 5f, 1);

            VectorOffset dataOff   = Table_OpenFunction.CreateDataVector(fbb, offsets);
            var          configOff = Table_OpenFunction.CreateTable_OpenFunction(fbb, dataOff);

            Table_OpenFunction.FinishTable_OpenFunctionBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #11
0
        BookShelfFlat DataFlat(int nToCreate)
        {
            var builder = new FlatBufferBuilder(1024);

            Offset <BookFlat>[] books = new Offset <BookFlat> [nToCreate];

            for (int i = 1; i <= nToCreate; i++)
            {
                var title = builder.CreateString($"Book {i}");
                builder.StartVector(1, BookDataSize, 0);
                byte[] bytes = CreateAndFillByteBuffer();
                if (bytes.Length > 0)
                {
                    builder.Put(bytes);
                }
                VectorOffset bookbyteArrayOffset = builder.EndVector();
                var          bookOffset          = BookFlat.CreateBookFlat(builder, title, i, bookbyteArrayOffset);
                books[i - 1] = bookOffset;
            }

            var          secretOffset = builder.CreateString("private member value");
            VectorOffset booksVector  = builder.CreateVectorOfTables <BookFlat>(books);
            var          lret         = BookShelfFlat.CreateBookShelfFlat(builder, booksVector, secretOffset);

            builder.Finish(lret.Value);
            var bookshelf = BookShelfFlat.GetRootAsBookShelfFlat(builder.DataBuffer);

            return(bookshelf);
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_Charactor.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRCharactor>[] offsets = new Offset <DRCharactor> [4];

            offsets[0] = DRCharactor.CreateDRCharactor(fbb, 1, fbb.CreateString("白雪公主"), 59001, 34.6f, 16.38f, 73.7f);
            offsets[1] = DRCharactor.CreateDRCharactor(fbb, 2, fbb.CreateString("女主"), 59002, 35.66f, 16.35f, 74.676f);
            offsets[2] = DRCharactor.CreateDRCharactor(fbb, 3, fbb.CreateString("小红帽"), 59003, 35.69f, 16.36f, 73.7f);
            offsets[3] = DRCharactor.CreateDRCharactor(fbb, 4, fbb.CreateString("小矮人"), 59004, 36.934f, 16.383f, 73.548f);

            VectorOffset dataOff   = Table_Charactor.CreateDataVector(fbb, offsets);
            var          configOff = Table_Charactor.CreateTable_Charactor(fbb, dataOff);

            Table_Charactor.FinishTable_CharactorBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_ScreenAdaptation.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRScreenAdaptation>[] offsets = new Offset <DRScreenAdaptation> [4];

            offsets[0] = DRScreenAdaptation.CreateDRScreenAdaptation(fbb, 1, fbb.CreateString("苹果X"), fbb.CreateString("iPhone10"), fbb.CreateString("6"), true);
            offsets[1] = DRScreenAdaptation.CreateDRScreenAdaptation(fbb, 2, fbb.CreateString("苹果X"), fbb.CreateString("iPhone10"), fbb.CreateString("3"), true);
            offsets[2] = DRScreenAdaptation.CreateDRScreenAdaptation(fbb, 3, fbb.CreateString("华为P20"), fbb.CreateString("CLT_AL00"), fbb.CreateString("0"), true);
            offsets[3] = DRScreenAdaptation.CreateDRScreenAdaptation(fbb, 4, fbb.CreateString("华为P20"), fbb.CreateString("CLT"), fbb.CreateString("AL00"), true);

            VectorOffset dataOff   = Table_ScreenAdaptation.CreateDataVector(fbb, offsets);
            var          configOff = Table_ScreenAdaptation.CreateTable_ScreenAdaptation(fbb, dataOff);

            Table_ScreenAdaptation.FinishTable_ScreenAdaptationBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #14
0
    IEnumerator sending()
    {
        //이동할때 발생하는 코루틴
        while (true)
        {
            Debug.Log("courutin continue");
            // var idobj = GameObject.Find("connserver").GetComponent<connectserver>();

            Vector3 destination_rot = new Vector3(0, 0, yrot);

            Vector3 destination = player.position + (destination_rot * 0.1f * Time.deltaTime);

            float destinationpos_x = destination.x;
            float destinationpos_y = destination.y;
            float destinationpos_z = destination.z;


            float playerpos_x = player.position.x;
            float playerpos_y = player.position.y;
            float playerpos_z = player.position.z;

            builder = new FlatBufferBuilder(1024);
            var idoffset       = builder.CreateString(PlayerPrefs.GetString("id"));
            var nicknameoffset = builder.CreateString(PlayerPrefs.GetString("nickname"));
            Player.StartPlayer(builder);
            Player.AddStartstate(builder, PlayerStart.Play);
            Player.AddUserindex(builder, PlayerPrefs.GetInt("userindex"));
            Player.AddId(builder, idoffset);
            Player.AddNickname(builder, nicknameoffset);
            Player.AddPlayerpos(builder, Vec3.CreateVec3(builder, playerpos_x, playerpos_y, playerpos_z));
            Player.AddPlayerrot(builder, yrot);
            Player.AddMovestate(builder, MoveState.Move);
            Player.AddDestinationpos(builder, Vec3.CreateVec3(builder, destinationpos_x, destinationpos_y, destinationpos_z));
            Player.AddRoomindex(builder, playerinfo.playerindex);
            Player.AddAttacked(builder, 0);
            Player.AddFire(builder, 0);
            Player.AddSkillfire(builder, 0);
            Offset <Player> pypplayer = Player.EndPlayer(builder);

            Game.StartGame(builder);
            Game.AddPlayer(builder, pypplayer);
            Game.AddTablenum(builder, 0);
            Offset <Game> game = Game.EndGame(builder);

            builder.Finish(game.Value);
            sendBuffer = builder.SizedByteArray();
            sendbb     = new ByteBuffer(sendBuffer);


            Debug.Log("Client send ");

            if (findteam.stream.CanWrite)
            {
                findteam.stream.Write(sendBuffer, 0, sendBuffer.Length);
                findteam.stream.Flush();
            }
            //1프레임마다 데이터 전송
            yield return(new WaitForSeconds(0.1f));
        }
    }
예제 #15
0
    void FB_Serialize(FlatBufferBuilder fbb)
    {
        fbb.Clear();
        for (int p = 0; p < 10; ++p)
        {
            for (int n = 0; n < 10; ++n)
            {
                StringOffset phoneNumberOffset = fbb.CreateString(phoneNumber);
                PhoneNumber.StartPhoneNumber(fbb);
                PhoneNumber.AddNumber(fbb, phoneNumberOffset);
                PhoneNumber.AddType(fbb, (PhoneType)(n % 3));
                mPhoneArray[n] = PhoneNumber.EndPhoneNumber(fbb);
            }

            StringOffset nameOffset       = fbb.CreateString(personName);
            StringOffset emailOffset      = fbb.CreateString(email);
            VectorOffset phoneArrayOffset = Person.CreatePhonesVector(fbb, mPhoneArray);

            Person.StartPerson(fbb);
            Person.AddName(fbb, nameOffset);
            Person.AddId(fbb, p);
            Person.AddEmail(fbb, emailOffset);
            Person.AddPhones(fbb, phoneArrayOffset);
            mPersonArray[p] = Person.EndPerson(fbb);
        }

        VectorOffset peopleArrayOffset = AddressBook.CreatePeopleVector(fbb, mPersonArray);

        AddressBook.StartAddressBook(fbb);
        AddressBook.AddPeople(fbb, peopleArrayOffset);
        Offset <AddressBook> offset = AddressBook.EndAddressBook(fbb);

        fbb.Finish(offset.Value);
    }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_Product.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRProduct>[] offsets = new Offset <DRProduct> [3];

            offsets[0] = DRProduct.CreateDRProduct(fbb, 1, fbb.CreateString("飞机"), 13010);
            offsets[1] = DRProduct.CreateDRProduct(fbb, 2, fbb.CreateString("泡泡糖"), 13011);
            offsets[2] = DRProduct.CreateDRProduct(fbb, 3, fbb.CreateString("魔方"), 13012);

            VectorOffset dataOff   = Table_Product.CreateDataVector(fbb, offsets);
            var          configOff = Table_Product.CreateTable_Product(fbb, dataOff);

            Table_Product.FinishTable_ProductBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
        public void CanCreateNewFlatBufferFromScratch()
        {
            // Second, let's create a FlatBuffer from scratch in C#, and test it also.
            // We use an initial size of 1 to exercise the reallocation algorithm,
            // normally a size larger than the typical FlatBuffer you generate would be
            // better for performance.
            var fbb = new FlatBufferBuilder(1);

            // We set up the same values as monsterdata.json:

            var str = fbb.CreateString("MyMonster");
            var test1 = fbb.CreateString("test1");
            var test2 = fbb.CreateString("test2");

            Monster.StartInventoryVector(fbb, 5);
            for (int i = 4; i >= 0; i--)
            {
                fbb.AddByte((byte)i);
            }
            var inv = fbb.EndVector();

            var fred = fbb.CreateString("Fred");
            Monster.StartMonster(fbb);
            Monster.AddName(fbb, fred);
            var mon2 = Monster.EndMonster(fbb);

            Monster.StartTest4Vector(fbb, 2);
            MyGame.Example.Test.CreateTest(fbb, (short)10, (sbyte)20);
            MyGame.Example.Test.CreateTest(fbb, (short)30, (sbyte)40);
            var test4 = fbb.EndVector();

            Monster.StartTestarrayofstringVector(fbb, 2);
            fbb.AddOffset(test2);
            fbb.AddOffset(test1);
            var testArrayOfString = fbb.EndVector();

            Monster.StartMonster(fbb);
            Monster.AddPos(fbb, Vec3.CreateVec3(fbb, 1.0f, 2.0f, 3.0f, 3.0,
                                                     Color.Green, (short)5, (sbyte)6));
            Monster.AddHp(fbb, (short)80);
            Monster.AddName(fbb, str);
            Monster.AddInventory(fbb, inv);
            Monster.AddTestType(fbb, (byte)1);
            Monster.AddTest(fbb, mon2);
            Monster.AddTest4(fbb, test4);
            Monster.AddTestarrayofstring(fbb, testArrayOfString);
            var mon = Monster.EndMonster(fbb);

            fbb.Finish(mon);

            // Dump to output directory so we can inspect later, if needed
            using (var ms = new MemoryStream(fbb.DataBuffer().Data, fbb.DataBuffer().position(), fbb.Offset()))
            {
                var data = ms.ToArray();
                File.WriteAllBytes(@"Resources/monsterdata_cstest.mon",data);
            }

            // Now assert the buffer
            TestBuffer(fbb.DataBuffer());
        }
예제 #18
0
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_GuideModeGroup.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRGuideModeGroup>[] offsets = new Offset <DRGuideModeGroup> [5];

            offsets[0] = DRGuideModeGroup.CreateDRGuideModeGroup(fbb, 1, fbb.CreateString("第1组"), 0, 1, 1, 1);
            offsets[1] = DRGuideModeGroup.CreateDRGuideModeGroup(fbb, 2, fbb.CreateString("第2组"), 0, 2, 1, 2);
            offsets[2] = DRGuideModeGroup.CreateDRGuideModeGroup(fbb, 3, fbb.CreateString("第3组"), 0, 3, 1, 3);
            offsets[3] = DRGuideModeGroup.CreateDRGuideModeGroup(fbb, 4, fbb.CreateString("第4组"), 0, 4, 1, 4);
            offsets[4] = DRGuideModeGroup.CreateDRGuideModeGroup(fbb, 5, fbb.CreateString("第5组"), 0, 8, 1, 8);

            VectorOffset dataOff   = Table_GuideModeGroup.CreateDataVector(fbb, offsets);
            var          configOff = Table_GuideModeGroup.CreateTable_GuideModeGroup(fbb, dataOff);

            Table_GuideModeGroup.FinishTable_GuideModeGroupBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #19
0
        public static Offset <NymaTypes.NPortInfo> Pack(FlatBufferBuilder builder, NPortInfoT _o)
        {
            if (_o == null)
            {
                return(default(Offset <NymaTypes.NPortInfo>));
            }
            var _ShortName = _o.ShortName == null ? default(StringOffset) : builder.CreateString(_o.ShortName);
            var _FullName  = _o.FullName == null ? default(StringOffset) : builder.CreateString(_o.FullName);
            var _DefaultDeviceShortName = _o.DefaultDeviceShortName == null ? default(StringOffset) : builder.CreateString(_o.DefaultDeviceShortName);
            var _Devices = default(VectorOffset);

            if (_o.Devices != null)
            {
                var __Devices = new Offset <NymaTypes.NDeviceInfo> [_o.Devices.Count];
                for (var _j = 0; _j < __Devices.Length; ++_j)
                {
                    __Devices[_j] = NymaTypes.NDeviceInfo.Pack(builder, _o.Devices[_j]);
                }
                _Devices = CreateDevicesVector(builder, __Devices);
            }
            return(CreateNPortInfo(
                       builder,
                       _ShortName,
                       _FullName,
                       _DefaultDeviceShortName,
                       _Devices));
        }
        public static Offset <NymaTypes.NDeviceInfo> Pack(FlatBufferBuilder builder, NDeviceInfoT _o)
        {
            if (_o == null)
            {
                return(default(Offset <NymaTypes.NDeviceInfo>));
            }
            var _ShortName   = _o.ShortName == null ? default(StringOffset) : builder.CreateString(_o.ShortName);
            var _FullName    = _o.FullName == null ? default(StringOffset) : builder.CreateString(_o.FullName);
            var _Description = _o.Description == null ? default(StringOffset) : builder.CreateString(_o.Description);
            var _Inputs      = default(VectorOffset);

            if (_o.Inputs != null)
            {
                var __Inputs = new Offset <NymaTypes.NInputInfo> [_o.Inputs.Count];
                for (var _j = 0; _j < __Inputs.Length; ++_j)
                {
                    __Inputs[_j] = NymaTypes.NInputInfo.Pack(builder, _o.Inputs[_j]);
                }
                _Inputs = CreateInputsVector(builder, __Inputs);
            }
            return(CreateNDeviceInfo(
                       builder,
                       _ShortName,
                       _FullName,
                       _Description,
                       _o.Flags,
                       _o.ByteLength,
                       _Inputs));
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_Combo.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRCombo>[] offsets = new Offset <DRCombo> [5];

            offsets[0] = DRCombo.CreateDRCombo(fbb, 1, default(StringOffset), default(StringOffset));
            offsets[1] = DRCombo.CreateDRCombo(fbb, 2, default(StringOffset), fbb.CreateString("GamePanelFormAtlas/image_good"));
            offsets[2] = DRCombo.CreateDRCombo(fbb, 3, default(StringOffset), fbb.CreateString("GamePanelFormAtlas/image_nice"));
            offsets[3] = DRCombo.CreateDRCombo(fbb, 4, default(StringOffset), fbb.CreateString("GamePanelFormAtlas/image_wonderful"));
            offsets[4] = DRCombo.CreateDRCombo(fbb, 5, default(StringOffset), fbb.CreateString("GamePanelFormAtlas/image_unbelievablet"));

            VectorOffset dataOff   = Table_Combo.CreateDataVector(fbb, offsets);
            var          configOff = Table_Combo.CreateTable_Combo(fbb, dataOff);

            Table_Combo.FinishTable_ComboBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_Reward.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRReward>[] offsets = new Offset <DRReward> [5];

            offsets[0] = DRReward.CreateDRReward(fbb, 1001, fbb.CreateString("关卡掉落1"), fbb.CreateString("关卡掉落1"), 10, 0, 0, DRReward.CreateItemIdVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }), DRReward.CreateCountVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }));
            offsets[1] = DRReward.CreateDRReward(fbb, 1002, fbb.CreateString("关卡掉落2"), fbb.CreateString("关卡掉落2"), 0, 10, 0, DRReward.CreateItemIdVector(fbb, new int[] { 0, 2, 3, 4, 0, 0, 0, 0 }), DRReward.CreateCountVector(fbb, new int[] { 0, 2, 3, 4, 0, 0, 0, 0 }));
            offsets[2] = DRReward.CreateDRReward(fbb, 1003, fbb.CreateString("关卡掉落3"), fbb.CreateString("关卡掉落3"), 0, 0, 5, DRReward.CreateItemIdVector(fbb, new int[] { 0, 0, 3, 4, 5, 0, 0, 0 }), DRReward.CreateCountVector(fbb, new int[] { 0, 0, 3, 4, 5, 0, 0, 0 }));
            offsets[3] = DRReward.CreateDRReward(fbb, 3000, fbb.CreateString("怪物掉落1"), fbb.CreateString("怪物掉落1"), 0, 0, 0, DRReward.CreateItemIdVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }), DRReward.CreateCountVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }));
            offsets[4] = DRReward.CreateDRReward(fbb, 5000, fbb.CreateString("怪物掉落2"), fbb.CreateString("怪物掉落2"), 0, 0, 0, DRReward.CreateItemIdVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }), DRReward.CreateCountVector(fbb, new int[] { 1, 2, 3, 0, 0, 0, 0, 0 }));

            VectorOffset dataOff   = Table_Reward.CreateDataVector(fbb, offsets);
            var          configOff = Table_Reward.CreateTable_Reward(fbb, dataOff);

            Table_Reward.FinishTable_RewardBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #23
0
        public byte[] GenerateTestTableWithUnionAndMoreFields(int intProp, string stringProp, float floatProp, double doubleProp, TestTable1 testTable1Prop = null, TestTable2 testTable2Prop = null)
        {
            if (testTable1Prop != null && testTable2Prop != null)
            {
                throw new ArgumentException();
            }

            var fbb = new FlatBufferBuilder(8);

            var stringOffset = fbb.CreateString(stringProp);

            var unionTableOffset = 0;
            var unionType        = TestUnion.NONE;

            if (testTable1Prop != null)
            {
                unionTableOffset = SerializationTests.TestTable1.CreateTestTable1(fbb, testTable1Prop.IntProp,
                                                                                  testTable1Prop.ByteProp, testTable1Prop.ShortProp).Value;
                unionType = TestUnion.TestTable1;
            }
            else if (testTable2Prop != null)
            {
                var stringOffset2 = fbb.CreateString(testTable2Prop.StringProp);
                unionTableOffset = SerializationTests.TestTable2.CreateTestTable2(fbb, stringOffset2).Value;
                unionType        = TestUnion.TestTable2;
            }

            var tableOffset = SerializationTests.TestTableWithUnionAndMoreFields.CreateTestTableWithUnionAndMoreFields(fbb, intProp,
                                                                                                                       unionType, unionTableOffset, stringOffset, floatProp, doubleProp);

            fbb.Finish(tableOffset.Value);
            return(GetBytes(fbb));
        }
예제 #24
0
    private byte[] Save()
    {
        Debug.Log("Creating and saving a Monster to byte array");
        // Create a `FlatBufferBuilder`, which will be used to create our
        // monsters' FlatBuffers.
        var builder = new FlatBufferBuilder(1024);

        var weaponOneName   = builder.CreateString("Sword");
        var weaponOneDamage = 3;
        var weaponTwoName   = builder.CreateString("Axe");
        var weaponTwoDamage = 5;
        // Use the `CreateWeapon()` helper function to create the weapons, since we set every field.
        var sword = Weapon.CreateWeapon(builder, weaponOneName, (short)weaponOneDamage);
        var axe   = Weapon.CreateWeapon(builder, weaponTwoName, (short)weaponTwoDamage);

        // Serialize a name for our monster, called "Orc".
        var name = builder.CreateString("Orc");

        // Create a `vector` representing the inventory of the Orc. Each number
        // could correspond to an item that can be claimed after he is slain.
        // Note: Since we prepend the bytes, this loop iterates in reverse order.
        Monster.StartInventoryVector(builder, 10);
        for (int i = 9; i >= 0; i--)
        {
            builder.AddByte((byte)i);
        }

        var inv = builder.EndVector();

        var weaps = new Offset <Weapon> [2];

        weaps[0] = sword;
        weaps[1] = axe;
        // Pass the `weaps` array into the `CreateWeaponsVector()` method to create a FlatBuffer vector.
        var weapons = Monster.CreateWeaponsVector(builder, weaps);

        Monster.StartPathVector(builder, 2);
        Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f);
        Vec3.CreateVec3(builder, 4.0f, 5.0f, 6.0f);
        var path = builder.EndVector();

        // Create our monster using `StartMonster()` and `EndMonster()`.
        Monster.StartMonster(builder);
        Monster.AddPos(builder, Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f));
        Monster.AddHp(builder, 300);
        Monster.AddName(builder, name);
        Monster.AddInventory(builder, inv);
        Monster.AddColor(builder, MyGame.Sample.Color.Red);
        Monster.AddWeapons(builder, weapons);
        Monster.AddEquippedType(builder, Equipment.Weapon);
        Monster.AddEquipped(builder, axe.Value); // Axe
        Monster.AddPath(builder, path);
        var orc = Monster.EndMonster(builder);

        // Call `Finish()` to instruct the builder that this monster is complete.
        builder.Finish(orc.Value); // You could also call `Monster.FinishMonsterBuffer(builder, orc);`.

        return(builder.SizedByteArray());
    }
        internal Offset <AssetBundleFlatBuffer.SubFileInfo> SaveToFlatBuffer(FlatBufferBuilder builder)
        {
            var fileNameOffset   = builder.CreateString(fileName);
            var shaderNameOffset = builder.CreateString(shaderName);

            AssetBundleFlatBuffer.SubFileInfo.StartSubFileInfo(builder);
            AssetBundleFlatBuffer.SubFileInfo.AddFileName(builder, fileNameOffset);
            AssetBundleFlatBuffer.SubFileInfo.AddShaderName(builder, shaderNameOffset);
            return(AssetBundleFlatBuffer.SubFileInfo.EndSubFileInfo(builder));
        }
예제 #26
0
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_CommonItem.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRCommonItem>[] offsets = new Offset <DRCommonItem> [9];

            offsets[0] = DRCommonItem.CreateDRCommonItem(fbb, 0, fbb.CreateString("金手指"), 13004, fbb.CreateString("Icons/Item_Gold_finger"), 43, 0);
            offsets[1] = DRCommonItem.CreateDRCommonItem(fbb, 1, fbb.CreateString("万能块"), 13005, fbb.CreateString("Icons/Item_WNK"), 44, 0);
            offsets[2] = DRCommonItem.CreateDRCommonItem(fbb, 2, fbb.CreateString("小锤子"), 13006, fbb.CreateString("Icons/Item_Hammer"), 46, 0);
            offsets[3] = DRCommonItem.CreateDRCommonItem(fbb, 3, fbb.CreateString("加步数"), 13007, fbb.CreateString("Icons/Item_StepNumber"), 75, 1);
            offsets[4] = DRCommonItem.CreateDRCommonItem(fbb, 4, fbb.CreateString("后退一步"), 13008, fbb.CreateString("Icons/Item_BackOff"), 73, 0);
            offsets[5] = DRCommonItem.CreateDRCommonItem(fbb, 5, fbb.CreateString("连锁闪电"), 13009, fbb.CreateString("Icons/Item_Lightning"), 74, 0);
            offsets[6] = DRCommonItem.CreateDRCommonItem(fbb, 6, fbb.CreateString("双倍飞机"), 13010, fbb.CreateString("Icons/Item_aircraft"), 0, 1);
            offsets[7] = DRCommonItem.CreateDRCommonItem(fbb, 7, fbb.CreateString("双倍泡泡糖"), 13011, fbb.CreateString("Icons/Item_paopaotang"), 0, 1);
            offsets[8] = DRCommonItem.CreateDRCommonItem(fbb, 8, fbb.CreateString("礼盒"), 13012, fbb.CreateString("Icons/Item_mofang"), 0, 1);

            VectorOffset dataOff   = Table_CommonItem.CreateDataVector(fbb, offsets);
            var          configOff = Table_CommonItem.CreateTable_CommonItem(fbb, dataOff);

            Table_CommonItem.FinishTable_CommonItemBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #27
0
 public static void SetServerPort(string ipAddress, int port)
 {
     if (isFirstTime)
     {
         StringOffset ip = flatBufferBuilder.CreateString(ipAddress);
         DataBase.StartDataBase(flatBufferBuilder);
         DataBase.AddIpAddress(flatBufferBuilder, ip);
         DataBase.AddPort(flatBufferBuilder, port);
         Save();
     }
 }
예제 #28
0
        private static Offset <Connection>[] BuildConnectionOffsets(IList <ConnectionModel> connections, FlatBufferBuilder builder)
        {
            Offset <Connection>[] addedConnectionsOffsets = BuildOffsets(connections, connection =>
            {
                StringOffset fromConnectorName = builder.CreateString(connection.From.Name);
                StringOffset toConnectorName   = builder.CreateString(connection.To.Name);

                return(Connection.CreateConnection(builder, connection.From.Region.Index,
                                                   fromConnectorName, connection.To.Region.Index, toConnectorName));
            });
            return(addedConnectionsOffsets);
        }
예제 #29
0
        static void Main(string[] args)
        {
            FlatBufferBuilder builder = new FlatBufferBuilder(1);
            var weaponOneName         = builder.CreateString("Sword");
            var weaponOneDamage       = 3;
            var weaponTwoName         = builder.CreateString("Axe");
            var weaponTwoDamage       = 5;
            // Use the `CreateWeapon()` helper function to create the weapons, since we set every field.
            var sword = Weapon.CreateWeapon(builder, weaponOneName, (short)weaponOneDamage);
            var axe   = Weapon.CreateWeapon(builder, weaponTwoName, (short)weaponTwoDamage);

            var name = builder.CreateString("Orc");

            Monster.StartInventoryVector(builder, 10);
            for (int i = 9; i >= 0; i--)
            {
                builder.AddByte((byte)i);
            }
            var inv = builder.EndVector();

            var weaps = new Offset <Weapon> [2];

            weaps[0] = sword;
            weaps[1] = axe;

            // Pass the `weaps` array into the `CreateWeaponsVector()` method to create a FlatBuffer vector.
            var weapons = Monster.CreateWeaponsVector(builder, weaps);
            var pos     = Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f);

            Monster.StartMonster(builder);
            Monster.AddPos(builder, pos);
            Monster.AddHp(builder, (short)300);

            Monster.AddName(builder, name);
            Monster.AddInventory(builder, inv);
            Monster.AddColor(builder, Color.Red);

            Monster.AddWeapons(builder, weapons);
            Monster.AddEquippedType(builder, Equipment.Weapon);
            Monster.AddEquipped(builder, axe.Value); // Axe

            var orc = Monster.EndMonster(builder);

            builder.Finish(orc.Value);
            var buf = builder.SizedByteArray();

            // Initialize the client with the receive filter and request handler
            foo(buf);
            while (true)
            {
                ;
            }
        }
예제 #30
0
        public override void GenerateByte()
        {
            string            path = "E:/FantasyPark/src/trunk/Tools_SourceCode/ExcelToFlatBuffer/ExcelToFlatBuffer/ExcelToFlatBuffer/bin/Debug/CompileCShap/Script/AutoGenerate/Bytes/Table_GhostGenerate.bytes";
            FlatBufferBuilder fbb  = new FlatBufferBuilder(1);

            Offset <DRGhostGenerate>[] offsets = new Offset <DRGhostGenerate> [8];

            offsets[0] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 1, fbb.CreateString("type1"), fbb.CreateString("2|2|2|2|2|2|2"));
            offsets[1] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 2, fbb.CreateString("type4"), fbb.CreateString("0|0|0|0|12|0|0"));
            offsets[2] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 3, fbb.CreateString("type7"), fbb.CreateString("0|0|0|0|0|0|10"));
            offsets[3] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 4, fbb.CreateString("type10"), fbb.CreateString("10|0|0|0|0|0|0"));
            offsets[4] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 5, fbb.CreateString("type13"), fbb.CreateString("0|2|0|0|0|3|0"));
            offsets[5] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 95, fbb.CreateString("95"), fbb.CreateString("1|0|0|1|0|0|0"));
            offsets[6] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 100120, fbb.CreateString("12关,只产生紫色幽灵"), fbb.CreateString("0|0|0|0|0|3|0"));
            offsets[7] = DRGhostGenerate.CreateDRGhostGenerate(fbb, 100150, fbb.CreateString("15关,先产红色,再产绿色"), fbb.CreateString("0|0|0|0|999|0|1"));

            VectorOffset dataOff   = Table_GhostGenerate.CreateDataVector(fbb, offsets);
            var          configOff = Table_GhostGenerate.CreateTable_GhostGenerate(fbb, dataOff);

            Table_GhostGenerate.FinishTable_GhostGenerateBuffer(fbb, configOff);
            using (var ms = new MemoryStream(fbb.DataBuffer.ToFullArray(), fbb.DataBuffer.Position, fbb.Offset))
            {
                try
                {
                    var data = ms.ToArray();
                    File.WriteAllBytes(path, data);
                    Console.WriteLine("已生成:" + path.ToString());
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.ToString());
                }
            }
        }
예제 #31
0
        public static VectorOffset BuildOffsetFromStructList(FlatBufferBuilder builder, List <ContainerMap> list)
        {
            VectorOffset rescol = default(VectorOffset);
            var          sents  = new Offset <Container> [list.Count];

            for (int i = 0; i < list.Count; i++)
            {
                var Name    = builder.CreateString(list[i].Name);
                var Created = builder.CreateString(list[i].Created.ToString());
                sents[i] = Container.CreateContainer(builder, list[i].ContainerID, Created, Name, list[i].ParentID);
            }
            rescol = Message.CreateContainersVector(builder, sents);
            return(rescol);
        }
예제 #32
0
 public void TestCreateArbitarytring()
 {
     var builder = new FlatBufferBuilder(1);
     builder.CreateString("\x01\x02\x03");
     Assert.ArrayEqual(new byte[]
     {
         3, 0, 0, 0,
         0x01, 0x02, 0x03, 0
     }, builder.DataBuffer.Data); // No padding
     builder.CreateString("\x04\x05\x06\x07");
     Assert.ArrayEqual(new byte[]
     {
         0, 0, 0, 0,
         0, 0, 0, 0,
         0, 0, 0, 0,  // Padding to 32 bytes
         4, 0, 0, 0,
         0x04, 0x05, 0x06, 0x07,
         0, 0, 0, 0, // zero terminator with 3 byte pad
         3, 0, 0, 0,
         0x01, 0x02, 0x03, 0
     }, builder.DataBuffer.Data); // No padding
 }
        public void CanCreateNewFlatBufferFromScratch()
        {
            // Second, let's create a FlatBuffer from scratch in C#, and test it also.
            // We use an initial size of 1 to exercise the reallocation algorithm,
            // normally a size larger than the typical FlatBuffer you generate would be
            // better for performance.
            var fbb = new FlatBufferBuilder(1);

            // We set up the same values as monsterdata.json:

            var str = fbb.CreateString("MyMonster");
            var test1 = fbb.CreateString("test1");
            var test2 = fbb.CreateString("test2");


            Monster.StartInventoryVector(fbb, 5);
            for (int i = 4; i >= 0; i--)
            {
                fbb.AddByte((byte)i);
            }
            var inv = fbb.EndVector();

            var fred = fbb.CreateString("Fred");
            Monster.StartMonster(fbb);
            Monster.AddName(fbb, fred);
            var mon2 = Monster.EndMonster(fbb);

            Monster.StartTest4Vector(fbb, 2);
            MyGame.Example.Test.CreateTest(fbb, (short)10, (sbyte)20);
            MyGame.Example.Test.CreateTest(fbb, (short)30, (sbyte)40);
            var test4 = fbb.EndVector();

            Monster.StartTestarrayofstringVector(fbb, 2);
            fbb.AddOffset(test2.Value);
            fbb.AddOffset(test1.Value);
            var testArrayOfString = fbb.EndVector();

            Monster.StartMonster(fbb);
            Monster.AddPos(fbb, Vec3.CreateVec3(fbb, 1.0f, 2.0f, 3.0f, 3.0,
                                                     Color.Green, (short)5, (sbyte)6));
            Monster.AddHp(fbb, (short)80);
            Monster.AddName(fbb, str);
            Monster.AddInventory(fbb, inv);
            Monster.AddTestType(fbb, Any.Monster);
            Monster.AddTest(fbb, mon2.Value);
            Monster.AddTest4(fbb, test4);
            Monster.AddTestarrayofstring(fbb, testArrayOfString);
            Monster.AddTestbool(fbb, false);
            var mon = Monster.EndMonster(fbb);

            Monster.FinishMonsterBuffer(fbb, mon);


            // Dump to output directory so we can inspect later, if needed
            using (var ms = new MemoryStream(fbb.DataBuffer.Data, fbb.DataBuffer.Position, fbb.Offset))
            {
                var data = ms.ToArray();
                File.WriteAllBytes(@"Resources/monsterdata_cstest.mon",data);
            }

            // Now assert the buffer
            TestBuffer(fbb.DataBuffer);

            //Attempt to mutate Monster fields and check whether the buffer has been mutated properly
            // revert to original values after testing
            Monster monster = Monster.GetRootAsMonster(fbb.DataBuffer);

            // mana is optional and does not exist in the buffer so the mutation should fail
            // the mana field should retain its default value
            Assert.AreEqual(monster.MutateMana((short)10), false);
            Assert.AreEqual(monster.Mana, (short)150);

            // testType is an existing field and mutating it should succeed
            Assert.AreEqual(monster.TestType, Any.Monster);
            Assert.AreEqual(monster.MutateTestType(Any.NONE), true);
            Assert.AreEqual(monster.TestType, Any.NONE);
            Assert.AreEqual(monster.MutateTestType(Any.Monster), true);
            Assert.AreEqual(monster.TestType, Any.Monster);

            //mutate the inventory vector
            Assert.AreEqual(monster.MutateInventory(0, 1), true);
            Assert.AreEqual(monster.MutateInventory(1, 2), true);
            Assert.AreEqual(monster.MutateInventory(2, 3), true);
            Assert.AreEqual(monster.MutateInventory(3, 4), true);
            Assert.AreEqual(monster.MutateInventory(4, 5), true);

            for (int i = 0; i < monster.InventoryLength; i++)
            {
                Assert.AreEqual(monster.GetInventory(i), i + 1);
            }

            //reverse mutation
            Assert.AreEqual(monster.MutateInventory(0, 0), true);
            Assert.AreEqual(monster.MutateInventory(1, 1), true);
            Assert.AreEqual(monster.MutateInventory(2, 2), true);
            Assert.AreEqual(monster.MutateInventory(3, 3), true);
            Assert.AreEqual(monster.MutateInventory(4, 4), true);

            // get a struct field and edit one of its fields
            Vec3 pos = monster.Pos;
            Assert.AreEqual(pos.X, 1.0f);
            pos.MutateX(55.0f);
            Assert.AreEqual(pos.X, 55.0f);
            pos.MutateX(1.0f);
            Assert.AreEqual(pos.X, 1.0f);

            TestBuffer(fbb.DataBuffer);
        }
예제 #34
0
        public void TestCreateAsciiString()
        {
            var builder = new FlatBufferBuilder(1);
            builder.CreateString("foo");
            Assert.ArrayEqual(new byte[] { 3, 0, 0, 0, (byte)'f', (byte)'o', (byte)'o', 0 }, builder.DataBuffer.Data);

            builder.CreateString("moop");
            Assert.ArrayEqual(new byte[]
            {
                0, 0, 0, 0,
                0, 0, 0, 0,
                0, 0, 0, 0,  // Padding to 32 bytes
                4, 0, 0, 0,
                (byte)'m', (byte)'o', (byte)'o', (byte)'p',
                0, 0, 0, 0, // zero terminator with 3 byte pad
                3, 0, 0, 0,
                (byte)'f', (byte)'o', (byte)'o', 0
            }, builder.DataBuffer.Data);
        }
        public void TestNestedFlatBuffer()
        {
            const string nestedMonsterName = "NestedMonsterName";
            const short nestedMonsterHp = 600;
            const short nestedMonsterMana = 1024;
            // Create nested buffer as a Monster type
            var fbb1 = new FlatBufferBuilder(16);
            var str1 = fbb1.CreateString(nestedMonsterName);
            Monster.StartMonster(fbb1);
            Monster.AddName(fbb1, str1);
            Monster.AddHp(fbb1, nestedMonsterHp);
            Monster.AddMana(fbb1, nestedMonsterMana);
            var monster1 = Monster.EndMonster(fbb1);
            Monster.FinishMonsterBuffer(fbb1, monster1);
            var fbb1Bytes = fbb1.SizedByteArray();
            fbb1 = null;

            // Create a Monster which has the first buffer as a nested buffer
            var fbb2 = new FlatBufferBuilder(16);
            var str2 = fbb2.CreateString("My Monster");
            var nestedBuffer = Monster.CreateTestnestedflatbufferVector(fbb2, fbb1Bytes);
            Monster.StartMonster(fbb2);
            Monster.AddName(fbb2, str2);
            Monster.AddHp(fbb2, 50);
            Monster.AddMana(fbb2, 32);
            Monster.AddTestnestedflatbuffer(fbb2, nestedBuffer);
            var monster = Monster.EndMonster(fbb2);
            Monster.FinishMonsterBuffer(fbb2, monster);
            
            // Now test the data extracted from the nested buffer
            var mons = Monster.GetRootAsMonster(fbb2.DataBuffer);
            var nestedMonster = mons.TestnestedflatbufferAsMonster();

            Assert.AreEqual(nestedMonsterMana, nestedMonster.Mana);
            Assert.AreEqual(nestedMonsterHp, nestedMonster.Hp);
            Assert.AreEqual(nestedMonsterName, nestedMonster.Name);
        }