// automatically generated by the FlatBuffers compiler, do not modify import flatbuffers namespace MyGame.Sample enum Color: Color_Red = 0 Color_Green = 1 Color_Blue = 2 enum Equipment: Equipment_NONE = 0 Equipment_Weapon = 1 class Vec3 class Monster class Weapon class Vec3 : flatbuffers.handle def x() -> float: return buf_.read_float32_le(pos_ + 0) def y() -> float: return buf_.read_float32_le(pos_ + 4) def z() -> float: return buf_.read_float32_le(pos_ + 8) def CreateVec3(b_:flatbuffers.builder, x:float, y:float, z:float): b_.Prep(4, 12) b_.PrependFloat32(z) b_.PrependFloat32(y) b_.PrependFloat32(x) return b_.Offset() class Monster : flatbuffers.handle def pos() -> MyGame.Sample.Vec3?: let o = flatbuffers.field_struct(buf_, pos_, 4) return if o: MyGame.Sample.Vec3 { buf_, o } else: nil def mana() -> int: return flatbuffers.field_int16(buf_, pos_, 6, 150) def hp() -> int: return flatbuffers.field_int16(buf_, pos_, 8, 100) def name() -> string: return flatbuffers.field_string(buf_, pos_, 10) def inventory(i:int) -> int: return read_uint8_le(buf_, buf_.flatbuffers.field_vector(pos_, 14) + i * 1) def inventory_length() -> int: return flatbuffers.field_vector_len(buf_, pos_, 14) def color() -> Color: return Color(flatbuffers.field_int8(buf_, pos_, 16, 2)) def weapons(i:int) -> MyGame.Sample.Weapon: return MyGame.Sample.Weapon { buf_, flatbuffers.indirect(buf_, flatbuffers.field_vector(buf_, pos_, 18) + i * 4) } def weapons_length() -> int: return flatbuffers.field_vector_len(buf_, pos_, 18) def equipped_type() -> Equipment: return Equipment(flatbuffers.field_uint8(buf_, pos_, 20, 0)) def equipped_as_Weapon(): return MyGame.Sample.Weapon { buf_, flatbuffers.field_table(buf_, pos_, 22) } def path(i:int) -> MyGame.Sample.Vec3: return MyGame.Sample.Vec3 { buf_, flatbuffers.field_vector(buf_, pos_, 24) + i * 12 } def path_length() -> int: return flatbuffers.field_vector_len(buf_, pos_, 24) def GetRootAsMonster(buf:string): return Monster { buf, flatbuffers.indirect(buf, 0) } struct MonsterBuilder: b_:flatbuffers.builder def start(): b_.StartObject(11) return this def add_pos(pos:flatbuffers.offset): b_.PrependStructSlot(0, pos) return this def add_mana(mana:int): b_.PrependInt16Slot(1, mana, 150) return this def add_hp(hp:int): b_.PrependInt16Slot(2, hp, 100) return this def add_name(name:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(3, name) return this def add_inventory(inventory:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(5, inventory) return this def add_color(color:Color): b_.PrependInt8Slot(6, color, 2) return this def add_weapons(weapons:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(7, weapons) return this def add_equipped_type(equipped_type:Equipment): b_.PrependUint8Slot(8, equipped_type, 0) return this def add_equipped(equipped:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(9, equipped) return this def add_path(path:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(10, path) return this def end(): return b_.EndObject() def MonsterStartInventoryVector(b_:flatbuffers.builder, n_:int): b_.StartVector(1, n_, 1) def MonsterCreateInventoryVector(b_:flatbuffers.builder, v_:[int]): b_.StartVector(1, v_.length, 1) reverse(v_) e_: b_.PrependUint8(e_) return b_.EndVector(v_.length) def MonsterStartWeaponsVector(b_:flatbuffers.builder, n_:int): b_.StartVector(4, n_, 4) def MonsterCreateWeaponsVector(b_:flatbuffers.builder, v_:[flatbuffers.offset]): b_.StartVector(4, v_.length, 4) reverse(v_) e_: b_.PrependUOffsetTRelative(e_) return b_.EndVector(v_.length) def MonsterStartPathVector(b_:flatbuffers.builder, n_:int): b_.StartVector(12, n_, 4) class Weapon : flatbuffers.handle def name() -> string: return flatbuffers.field_string(buf_, pos_, 4) def damage() -> int: return flatbuffers.field_int16(buf_, pos_, 6, 0) def GetRootAsWeapon(buf:string): return Weapon { buf, flatbuffers.indirect(buf, 0) } struct WeaponBuilder: b_:flatbuffers.builder def start(): b_.StartObject(2) return this def add_name(name:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(0, name) return this def add_damage(damage:int): b_.PrependInt16Slot(1, damage, 0) return this def end(): return b_.EndObject()