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()); } } }
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)); }
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()); } } }
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)); }
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()); } } }
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()); } } }
/// <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()); } } }
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()); } } }
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)); } }
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()); }
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()); } } }
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()); } } }
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)); }
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)); }
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()); } } }
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(); } }
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); }
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) { ; } }
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()); } } }
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); }
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); }
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); }