/
SchemaAccessors.cs
209 lines (167 loc) · 6.14 KB
/
SchemaAccessors.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
// Automatically generated by fbagen, do not modify
using FlatBuffers;
using FlatBuffers.Schema;
using System;
using System.Collections.Generic;
using System.Linq;
namespace MyGame.Schema.Mutable
{
public partial struct Vec3
{
public float X;
public float Y;
public float Z;
public Vec3(float x, float y, float z)
{
X = x;
Y = y;
Z = z;
}
}
public partial class Monster
{
public uint Id { get; private set; }
public Vec3 Pos { get; private set; }
public short Mana { get; private set; }
public short Hp { get; private set; }
public string Name { get; private set; }
public byte[] Inventory { get; private set; }
public Color Color { get; private set; }
// Any test is not implemented yet
public Monster(uint id, Vec3 pos, short mana, short hp, string name, byte[] inventory, Color color)
{
Id = id;
Pos = pos;
Mana = mana;
Hp = hp;
Name = name;
Inventory = inventory;
Color = color;
}
}
public partial class Weapon
{
public uint Id { get; private set; }
public string[] Tags { get; private set; }
public Weapon(uint id, string[] tags)
{
Id = id;
Tags = tags;
}
}
public partial class Pickup
{
public uint Id { get; private set; }
public Pickup(uint id)
{
Id = id;
}
}
public partial class Scene
{
public List<Monster> Monsters { get; private set; }
public Scene(List<Monster> monsters)
{
Monsters = monsters;
}
}
}
namespace MyGame.Schema.Serialization
{
public class Vec3Serializer : Serializer<MyGame.Schema.Mutable.Vec3, Vec3>
{
public static readonly Vec3Serializer Instance = new Vec3Serializer();
public override Offset<Vec3> Serialize(FlatBufferBuilder fbb, MyGame.Schema.Mutable.Vec3 obj)
{
return Vec3.CreateVec3(fbb, obj.X, obj.Y, obj.Z); }
protected override Vec3 GetRootAs(ByteBuffer buffer)
{
throw new NotImplementedException();
}
public override MyGame.Schema.Mutable.Vec3 Deserialize(Vec3 obj)
{
return new MyGame.Schema.Mutable.Vec3(obj.X, obj.Y, obj.Z);
}
}
public class MonsterSerializer : Serializer<MyGame.Schema.Mutable.Monster, Monster>
{
public static readonly MonsterSerializer Instance = new MonsterSerializer();
public override Offset<Monster> Serialize(FlatBufferBuilder fbb, MyGame.Schema.Mutable.Monster obj)
{
Monster.StartMonster(fbb);
Monster.AddId(fbb, obj.Id);
Monster.AddPos(fbb, Vec3Serializer.Instance.Serialize(fbb, obj.Pos));
Monster.AddMana(fbb, obj.Mana);
Monster.AddHp(fbb, obj.Hp);
if (!string.IsNullOrEmpty(obj.Name))
Monster.AddName(fbb, fbb.CreateString(obj.Name));
Monster.AddInventory(fbb, Monster.CreateInventoryVector(fbb, obj.Inventory));
Monster.AddColor(fbb, obj.Color);
// Any Test is not implemented yet
return Monster.EndMonster(fbb);
}
protected override Monster GetRootAs(ByteBuffer buffer)
{
return Monster.GetRootAsMonster(buffer);
}
public override MyGame.Schema.Mutable.Monster Deserialize(Monster obj)
{
return new MyGame.Schema.Mutable.Monster(obj.Id, Vec3Serializer.Instance.Deserialize(obj.Pos), obj.Mana, obj.Hp, obj.Name, DeserializeScalar(obj.InventoryLength, obj.Inventory), obj.Color);
}
}
public class WeaponSerializer : Serializer<MyGame.Schema.Mutable.Weapon, Weapon>
{
public static readonly WeaponSerializer Instance = new WeaponSerializer();
public override Offset<Weapon> Serialize(FlatBufferBuilder fbb, MyGame.Schema.Mutable.Weapon obj)
{
Weapon.StartWeapon(fbb);
Weapon.AddId(fbb, obj.Id);
Weapon.AddTags(fbb, Weapon.CreateTagsVector(fbb, SerializeString(fbb, obj.Tags)));
return Weapon.EndWeapon(fbb);
}
protected override Weapon GetRootAs(ByteBuffer buffer)
{
return Weapon.GetRootAsWeapon(buffer);
}
public override MyGame.Schema.Mutable.Weapon Deserialize(Weapon obj)
{
return new MyGame.Schema.Mutable.Weapon(obj.Id, DeserializeScalar(obj.TagsLength, obj.Tags));
}
}
public class PickupSerializer : Serializer<MyGame.Schema.Mutable.Pickup, Pickup>
{
public static readonly PickupSerializer Instance = new PickupSerializer();
public override Offset<Pickup> Serialize(FlatBufferBuilder fbb, MyGame.Schema.Mutable.Pickup obj)
{
Pickup.StartPickup(fbb);
Pickup.AddId(fbb, obj.Id);
return Pickup.EndPickup(fbb);
}
protected override Pickup GetRootAs(ByteBuffer buffer)
{
return Pickup.GetRootAsPickup(buffer);
}
public override MyGame.Schema.Mutable.Pickup Deserialize(Pickup obj)
{
return new MyGame.Schema.Mutable.Pickup(obj.Id);
}
}
public class SceneSerializer : Serializer<MyGame.Schema.Mutable.Scene, Scene>
{
public static readonly SceneSerializer Instance = new SceneSerializer();
public override Offset<Scene> Serialize(FlatBufferBuilder fbb, MyGame.Schema.Mutable.Scene obj)
{
Scene.StartScene(fbb);
Scene.AddMonsters(fbb, Scene.CreateMonstersVector(fbb, MonsterSerializer.Instance.Serialize(fbb, obj.Monsters)));
return Scene.EndScene(fbb);
}
protected override Scene GetRootAs(ByteBuffer buffer)
{
return Scene.GetRootAsScene(buffer);
}
public override MyGame.Schema.Mutable.Scene Deserialize(Scene obj)
{
return new MyGame.Schema.Mutable.Scene(MonsterSerializer.Instance.Deserialize(obj.MonstersLength, obj.Monsters).ToList());
}
}
}