// automatically generated by the FlatBuffers compiler, do not modify module MyGame.Sample.Monster; import std.typecons; import flatbuffers; import MyGame.Sample.Vec3; import MyGame.Sample.Color; import MyGame.Sample.Weapon; import MyGame.Sample.Equipment; struct Monster { mixin Table!Monster; static Monster getRootAsMonster(ByteBuffer _bb) { return Monster.init_(_bb.get!int(_bb.position()) + _bb.position(), _bb); } @property Nullable!Vec3 pos() { uint o = __offset(4); return o != 0 ? Nullable!Vec3(Vec3.init_(o + _pos, _buffer)) : Nullable!Vec3.init; } @property short mana() { uint o = __offset(6); return o != 0 ? _buffer.get!short(o + _pos) : 150; } @property short hp() { uint o = __offset(8); return o != 0 ? _buffer.get!short(o + _pos) : 100; } @property Nullable!string name() { uint o = __offset(10); return o != 0 ? Nullable!string(__string(o + _pos)) : Nullable!string.init; } auto inventory() { return Iterator!(Monster, ubyte, "inventory")(this); } ubyte inventory(uint j) { uint o = __offset(14); return o != 0 ? _buffer.get!ubyte(__dvector(o) + j * 1) : 0; } @property uint inventoryLength() { uint o = __offset(14); return o != 0 ? __vector_len(o) : 0; } @property byte color() { uint o = __offset(16); return o != 0 ? _buffer.get!byte(o + _pos) : 2; } auto weapons() { return Iterator!(Monster, Weapon, "weapons")(this); } Nullable!Weapon weapons(uint j) { uint o = __offset(18); return o != 0 ? Nullable!Weapon(Weapon.init_(__indirect(__dvector(o) + j * 4), _buffer)) : Nullable!Weapon.init; } @property uint weaponsLength() { uint o = __offset(18); return o != 0 ? __vector_len(o) : 0; } @property ubyte equippedType() { uint o = __offset(20); return o != 0 ? _buffer.get!ubyte(o + _pos) : 0; } Nullable!T equipped(T)() { uint o = __offset(22); return o != 0 ? Nullable!T(__union!(T)(o)) : Nullable!T.init; } static void startMonster(FlatBufferBuilder builder) { builder.startObject(10); } static void addPos(FlatBufferBuilder builder, uint posOffset) { builder.addStruct(0, posOffset, 0); } static void addMana(FlatBufferBuilder builder, short mana) { builder.add!short(1, mana, 150); } static void addHp(FlatBufferBuilder builder, short hp) { builder.add!short(2, hp, 100); } static void addName(FlatBufferBuilder builder, uint nameOffset) { builder.addOffset(3, nameOffset, 0); } static void addInventory(FlatBufferBuilder builder, uint inventoryOffset) { builder.addOffset(5, inventoryOffset, 0); } static uint createInventoryVector(FlatBufferBuilder builder, ubyte[] data) { builder.startVector(1, cast(uint)data.length, 1); for (size_t i = data.length; i > 0; i--) builder.add!ubyte(data[i - 1]); return builder.endVector(); } static void startInventoryVector(FlatBufferBuilder builder, uint numElems) { builder.startVector(1, numElems, 1); } static void addColor(FlatBufferBuilder builder, byte color) { builder.add!byte(6, color, 2); } static void addWeapons(FlatBufferBuilder builder, uint weaponsOffset) { builder.addOffset(7, weaponsOffset, 0); } static uint createWeaponsVector(FlatBufferBuilder builder, uint[] data) { builder.startVector(4, cast(uint)data.length, 4); for (size_t i = data.length; i > 0; i--) builder.addOffset(data[i - 1]); return builder.endVector(); } static void startWeaponsVector(FlatBufferBuilder builder, uint numElems) { builder.startVector(4, numElems, 4); } static void addEquippedType(FlatBufferBuilder builder, ubyte equippedType) { builder.add!ubyte(8, equippedType, 0); } static void addEquipped(FlatBufferBuilder builder, uint equippedOffset) { builder.addOffset(9, equippedOffset, 0); } static uint endMonster(FlatBufferBuilder builder) { uint o = builder.endObject(); return o; } static void finishMonsterBuffer(FlatBufferBuilder builder, uint offset) { builder.finish(offset); } }