-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
63 lines (53 loc) · 1.56 KB
/
main.py
File metadata and controls
63 lines (53 loc) · 1.56 KB
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
"""
serialization
"""
import flatbuffers
import MyGame.Sample.Color as Color
import MyGame.Sample.Equipment as Equipment
import MyGame.Sample.Monster as Monster
import MyGame.Sample.Vec3 as Vec3
import MyGame.Sample.Weapon as Weapon
builder = flatbuffers.Builder(1024)
weapon_one = builder.CreateString("Sword")
weapon_two = builder.CreateString("Axe")
Weapon.Start(builder)
Weapon.AddName(builder, weapon_one)
Weapon.AddDamage(builder, 3)
sword = Weapon.End(builder)
Weapon.Start(builder)
Weapon.AddName(builder, weapon_two)
Weapon.AddDamage(builder, 5)
axe = Weapon.End(builder)
Monster.StartWeaponsVector(builder, 2)
builder.PrependUOffsetTRelative(axe)
builder.PrependUOffsetTRelative(sword)
weapons = builder.EndVector()
Monster.StartInventoryVector(builder, 10)
for i in reversed(range(0, 10)):
builder.PrependByte(i)
inv = builder.EndVector()
Monster.StartPathVector(builder, 2)
Vec3.CreateVec3(builder, 1.0, 2.0, 3.0)
Vec3.CreateVec3(builder, 4.0, 5.0, 6.0)
path = builder.EndVector()
name = builder.CreateString("Orc")
Monster.Start(builder)
Monster.AddPos(builder,
Vec3.CreateVec3(builder, 1.0, 2.0, 3.0))
Monster.AddHp(builder, 300)
Monster.AddName(builder, name)
Monster.AddInventory(builder, inv)
Monster.AddColor(builder,
Color.Color().Red)
Monster.AddWeapons(builder, weapons)
Monster.AddEquippedType(
builder,
Equipment.Equipment().Weapon,
)
Monster.AddEquipped(builder, axe)
Monster.AddPath(builder, path)
orc = Monster.End(builder)
builder.Finish(orc)
buf = builder.Output()
with open("orc.flatbuf", "wb") as f:
f.write(buf)