// automatically generated by the FlatBuffers compiler, do not modify // ignore_for_file: unused_import, non_constant_identifier_names library my_game.sample; import 'dart:typed_data' show Uint8List; import 'package:flat_buffers/flat_buffers.dart' as fb; class Color { final int value; const Color._(this.value); factory Color.fromValue(int value) { if (value == null) return null; if (!values.containsKey(value)) { throw new StateError('Invalid value $value for bit flag enum Color'); } return values[value]; } static const int minValue = 0; static const int maxValue = 2; static bool containsValue(int value) => values.containsKey(value); static const Color Red = const Color._(0); static const Color Green = const Color._(1); static const Color Blue = const Color._(2); static get values => {0: Red,1: Green,2: Blue,}; static const fb.Reader reader = const _ColorReader(); @override String toString() { return 'Color{value: $value}'; } } class _ColorReader extends fb.Reader { const _ColorReader(); @override int get size => 1; @override Color read(fb.BufferContext bc, int offset) => new Color.fromValue(const fb.Int8Reader().read(bc, offset)); } class EquipmentTypeId { final int value; const EquipmentTypeId._(this.value); factory EquipmentTypeId.fromValue(int value) { if (value == null) return null; if (!values.containsKey(value)) { throw new StateError('Invalid value $value for bit flag enum EquipmentTypeId'); } return values[value]; } static const int minValue = 0; static const int maxValue = 1; static bool containsValue(int value) => values.containsKey(value); static const EquipmentTypeId NONE = const EquipmentTypeId._(0); static const EquipmentTypeId Weapon = const EquipmentTypeId._(1); static get values => {0: NONE,1: Weapon,}; static const fb.Reader reader = const _EquipmentTypeIdReader(); @override String toString() { return 'EquipmentTypeId{value: $value}'; } } class _EquipmentTypeIdReader extends fb.Reader { const _EquipmentTypeIdReader(); @override int get size => 1; @override EquipmentTypeId read(fb.BufferContext bc, int offset) => new EquipmentTypeId.fromValue(const fb.Uint8Reader().read(bc, offset)); } class Vec3 { Vec3._(this._bc, this._bcOffset); static const fb.Reader reader = const _Vec3Reader(); final fb.BufferContext _bc; final int _bcOffset; double get x => const fb.Float32Reader().read(_bc, _bcOffset + 0); double get y => const fb.Float32Reader().read(_bc, _bcOffset + 4); double get z => const fb.Float32Reader().read(_bc, _bcOffset + 8); @override String toString() { return 'Vec3{x: $x, y: $y, z: $z}'; } } class _Vec3Reader extends fb.StructReader { const _Vec3Reader(); @override int get size => 12; @override Vec3 createObject(fb.BufferContext bc, int offset) => new Vec3._(bc, offset); } class Vec3Builder { Vec3Builder(this.fbBuilder) { assert(fbBuilder != null); } final fb.Builder fbBuilder; int finish(double x, double y, double z) { fbBuilder.putFloat32(z); fbBuilder.putFloat32(y); fbBuilder.putFloat32(x); return fbBuilder.offset; } } class Vec3ObjectBuilder extends fb.ObjectBuilder { final double _x; final double _y; final double _z; Vec3ObjectBuilder({ double x, double y, double z, }) : _x = x, _y = y, _z = z; /// Finish building, and store into the [fbBuilder]. @override int finish( fb.Builder fbBuilder) { assert(fbBuilder != null); fbBuilder.putFloat32(_z); fbBuilder.putFloat32(_y); fbBuilder.putFloat32(_x); return fbBuilder.offset; } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String fileIdentifier]) { fb.Builder fbBuilder = new fb.Builder(); int offset = finish(fbBuilder); return fbBuilder.finish(offset, fileIdentifier); } } class Monster { Monster._(this._bc, this._bcOffset); factory Monster(List bytes) { fb.BufferContext rootRef = new fb.BufferContext.fromBytes(bytes); return reader.read(rootRef, 0); } static const fb.Reader reader = const _MonsterReader(); final fb.BufferContext _bc; final int _bcOffset; Vec3 get pos => Vec3.reader.vTableGet(_bc, _bcOffset, 4, null); int get mana => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 6, 150); int get hp => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 8, 100); String get name => const fb.StringReader().vTableGet(_bc, _bcOffset, 10, null); List get inventory => const fb.ListReader(const fb.Uint8Reader()).vTableGet(_bc, _bcOffset, 14, null); Color get color => new Color.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 16, 2)); List get weapons => const fb.ListReader(Weapon.reader).vTableGet(_bc, _bcOffset, 18, null); EquipmentTypeId get equippedType => new EquipmentTypeId.fromValue(const fb.Uint8Reader().vTableGet(_bc, _bcOffset, 20, null)); dynamic get equipped { switch (equippedType?.value) { case 1: return Weapon.reader.vTableGet(_bc, _bcOffset, 22, null); default: return null; } } List get path => const fb.ListReader(Vec3.reader).vTableGet(_bc, _bcOffset, 24, null); @override String toString() { return 'Monster{pos: $pos, mana: $mana, hp: $hp, name: $name, inventory: $inventory, color: $color, weapons: $weapons, equippedType: $equippedType, equipped: $equipped, path: $path}'; } } class _MonsterReader extends fb.TableReader { const _MonsterReader(); @override Monster createObject(fb.BufferContext bc, int offset) => new Monster._(bc, offset); } class MonsterBuilder { MonsterBuilder(this.fbBuilder) { assert(fbBuilder != null); } final fb.Builder fbBuilder; void begin() { fbBuilder.startTable(); } int addPos(int offset) { fbBuilder.addStruct(0, offset); return fbBuilder.offset; } int addMana(int mana) { fbBuilder.addInt16(1, mana); return fbBuilder.offset; } int addHp(int hp) { fbBuilder.addInt16(2, hp); return fbBuilder.offset; } int addNameOffset(int offset) { fbBuilder.addOffset(3, offset); return fbBuilder.offset; } int addInventoryOffset(int offset) { fbBuilder.addOffset(5, offset); return fbBuilder.offset; } int addColor(Color color) { fbBuilder.addInt8(6, color?.value); return fbBuilder.offset; } int addWeaponsOffset(int offset) { fbBuilder.addOffset(7, offset); return fbBuilder.offset; } int addEquippedType(EquipmentTypeId equippedType) { fbBuilder.addUint8(8, equippedType?.value); return fbBuilder.offset; } int addEquippedOffset(int offset) { fbBuilder.addOffset(9, offset); return fbBuilder.offset; } int addPathOffset(int offset) { fbBuilder.addOffset(10, offset); return fbBuilder.offset; } int finish() { return fbBuilder.endTable(); } } class MonsterObjectBuilder extends fb.ObjectBuilder { final Vec3ObjectBuilder _pos; final int _mana; final int _hp; final String _name; final List _inventory; final Color _color; final List _weapons; final EquipmentTypeId _equippedType; final dynamic _equipped; final List _path; MonsterObjectBuilder({ Vec3ObjectBuilder pos, int mana, int hp, String name, List inventory, Color color, List weapons, EquipmentTypeId equippedType, dynamic equipped, List path, }) : _pos = pos, _mana = mana, _hp = hp, _name = name, _inventory = inventory, _color = color, _weapons = weapons, _equippedType = equippedType, _equipped = equipped, _path = path; /// Finish building, and store into the [fbBuilder]. @override int finish( fb.Builder fbBuilder) { assert(fbBuilder != null); final int nameOffset = fbBuilder.writeString(_name); final int inventoryOffset = _inventory?.isNotEmpty == true ? fbBuilder.writeListUint8(_inventory) : null; final int weaponsOffset = _weapons?.isNotEmpty == true ? fbBuilder.writeList(_weapons.map((b) => b.getOrCreateOffset(fbBuilder)).toList()) : null; final int equippedOffset = _equipped?.getOrCreateOffset(fbBuilder); final int pathOffset = _path?.isNotEmpty == true ? fbBuilder.writeListOfStructs(_path) : null; fbBuilder.startTable(); if (_pos != null) { fbBuilder.addStruct(0, _pos.finish(fbBuilder)); } fbBuilder.addInt16(1, _mana); fbBuilder.addInt16(2, _hp); if (nameOffset != null) { fbBuilder.addOffset(3, nameOffset); } if (inventoryOffset != null) { fbBuilder.addOffset(5, inventoryOffset); } fbBuilder.addInt8(6, _color?.value); if (weaponsOffset != null) { fbBuilder.addOffset(7, weaponsOffset); } fbBuilder.addUint8(8, _equippedType?.value); if (equippedOffset != null) { fbBuilder.addOffset(9, equippedOffset); } if (pathOffset != null) { fbBuilder.addOffset(10, pathOffset); } return fbBuilder.endTable(); } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String fileIdentifier]) { fb.Builder fbBuilder = new fb.Builder(); int offset = finish(fbBuilder); return fbBuilder.finish(offset, fileIdentifier); } } class Weapon { Weapon._(this._bc, this._bcOffset); factory Weapon(List bytes) { fb.BufferContext rootRef = new fb.BufferContext.fromBytes(bytes); return reader.read(rootRef, 0); } static const fb.Reader reader = const _WeaponReader(); final fb.BufferContext _bc; final int _bcOffset; String get name => const fb.StringReader().vTableGet(_bc, _bcOffset, 4, null); int get damage => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 6, null); @override String toString() { return 'Weapon{name: $name, damage: $damage}'; } } class _WeaponReader extends fb.TableReader { const _WeaponReader(); @override Weapon createObject(fb.BufferContext bc, int offset) => new Weapon._(bc, offset); } class WeaponBuilder { WeaponBuilder(this.fbBuilder) { assert(fbBuilder != null); } final fb.Builder fbBuilder; void begin() { fbBuilder.startTable(); } int addNameOffset(int offset) { fbBuilder.addOffset(0, offset); return fbBuilder.offset; } int addDamage(int damage) { fbBuilder.addInt16(1, damage); return fbBuilder.offset; } int finish() { return fbBuilder.endTable(); } } class WeaponObjectBuilder extends fb.ObjectBuilder { final String _name; final int _damage; WeaponObjectBuilder({ String name, int damage, }) : _name = name, _damage = damage; /// Finish building, and store into the [fbBuilder]. @override int finish( fb.Builder fbBuilder) { assert(fbBuilder != null); final int nameOffset = fbBuilder.writeString(_name); fbBuilder.startTable(); if (nameOffset != null) { fbBuilder.addOffset(0, nameOffset); } fbBuilder.addInt16(1, _damage); return fbBuilder.endTable(); } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String fileIdentifier]) { fb.Builder fbBuilder = new fb.Builder(); int offset = finish(fbBuilder); return fbBuilder.finish(offset, fileIdentifier); } }