public void ConvertTekiInfo(string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <TekiInfoTable.Data>[] data = new FlatBuffers.Offset <TekiInfoTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] values = line.Split(','); int id = int.Parse(values[0]); TekiDefine.MoveType moveType = (TekiDefine.MoveType)Enum.Parse(typeof(TekiDefine.MoveType), values[1]); int messageEventId = int.Parse(values[2]); data[count] = TekiInfoTable.Data.CreateData(fbb, id, moveType, messageEventId); ++count; } FlatBuffers.VectorOffset infoVec = TekiInfoTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <TekiInfoTable.DataList> reslut = TekiInfoTable.DataList.CreateDataList(fbb, infoVec); TekiInfoTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream("teki-info-table.bin", System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }
public static Offset <Data> CreateData(FlatBufferBuilder builder, int id = 0, TekiDefine.MoveType moveType = TekiDefine.MoveType.None, int MessageEvent = 0) { builder.StartObject(3); Data.AddMessageEvent(builder, MessageEvent); Data.AddId(builder, id); Data.AddMoveType(builder, moveType); return(Data.EndData(builder)); }
public static void AddMoveType(FlatBufferBuilder builder, TekiDefine.MoveType moveType) { builder.AddSbyte(1, (sbyte)moveType, 0); }