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); }
//TODO Once finished use flatbuffer to save player game data public void SaveProfileToFlat(PlayerProfileModel prof) { float start = Time.realtimeSinceStartup; List <Offset <CharacterModelFlat> > charList = new List <Offset <CharacterModelFlat> >(); FlatBufferBuilder fbb = new FlatBufferBuilder(1); StringOffset item = fbb.CreateString(prof.itemString); foreach (CharacterModel model in prof.characters) { charList.Add(AddCharacterToFlat(fbb, model)); } VectorOffset charVector = fbb.CreateVectorOfTables <CharacterModelFlat>(charList.ToArray()); PlayerProfileFlat.StartPlayerProfileFlat(fbb); PlayerProfileFlat.AddGold(fbb, prof.Gold); PlayerProfileFlat.AddItems(fbb, item); PlayerProfileFlat.AddCharacters(fbb, charVector); Offset <PlayerProfileFlat> offset = PlayerProfileFlat.EndPlayerProfileFlat(fbb); PlayerProfileFlat.FinishPlayerProfileFlatBuffer(fbb, offset); MemoryStream ms = new MemoryStream(fbb.DataBuffer.Data, fbb.DataBuffer.Position, fbb.Offset); File.WriteAllBytes(XmlSaver.PersistentDataPath() + "/SAVEDATA", ms.ToArray()); Debug.Log("Flat Saving time " + (Time.realtimeSinceStartup - start)); }
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}"); var bookOffset = BookFlat.CreateBookFlat(builder, title, i); 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 static VectorOffset CreateMySortedVectorOfTables(FlatBufferBuilder builder, Offset <Monster>[] offsets) { Array.Sort(offsets, (Offset <Monster> o1, Offset <Monster> o2) => CompareStrings(__offset(10, o1.Value, builder.DataBuffer), __offset(10, o2.Value, builder.DataBuffer), builder.DataBuffer)); return(builder.CreateVectorOfTables(offsets)); }
public static VectorOffset CreateSortedVectorOfFDisplayable(FlatBufferBuilder builder, Offset <FDisplayable>[] offsets) { Array.Sort(offsets, (Offset <FDisplayable> o1, Offset <FDisplayable> o2) => Table.CompareStrings(Table.__offset(4, o1.Value, builder.DataBuffer), Table.__offset(4, o2.Value, builder.DataBuffer), builder.DataBuffer)); return(builder.CreateVectorOfTables(offsets)); }
public static VectorOffset CreateSortedVectorOfSortedVectorInt32Table(FlatBufferBuilder builder, Offset <SortedVectorInt32Table>[] offsets) { Array.Sort(offsets, (Offset <SortedVectorInt32Table> o1, Offset <SortedVectorInt32Table> o2) => builder.DataBuffer.GetInt(Table.__offset(4, o1.Value, builder.DataBuffer)).CompareTo(builder.DataBuffer.GetInt(Table.__offset(4, o2.Value, builder.DataBuffer)))); return(builder.CreateVectorOfTables(offsets)); }
public static VectorOffset CreateMySortedVectorOfTables(FlatBufferBuilder builder, Offset <ShortEntry>[] offsets) { Array.Sort(offsets, (Offset <ShortEntry> o1, Offset <ShortEntry> o2) => builder.DataBufferp.bb.GetShort(Table.__offset(4, o1.Value, builder.DataBuffer)).CompareTo(builder.DataBufferp.bb.GetShort(Table.__offset(4, o2.Value, builder.DataBuffer)))); return(builder.CreateVectorOfTables(offsets)); }