// automatically generated by the FlatBuffers compiler, do not modify // ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable 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) { final result = values[value]; if (result == null) { throw StateError('Invalid value $value for bit flag enum Color'); } return result; } static Color? _createOrNull(int? value) => value == null ? null : Color.fromValue(value); static const int minValue = 0; static const int maxValue = 2; static bool containsValue(int value) => values.containsKey(value); static const Color Red = Color._(0); static const Color Green = Color._(1); static const Color Blue = Color._(2); static const Map values = { 0: Red, 1: Green, 2: Blue}; static const fb.Reader reader = _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) => Color.fromValue(const fb.Int8Reader().read(bc, offset)); } class EquipmentTypeId { final int value; const EquipmentTypeId._(this.value); factory EquipmentTypeId.fromValue(int value) { final result = values[value]; if (result == null) { throw StateError('Invalid value $value for bit flag enum EquipmentTypeId'); } return result; } static EquipmentTypeId? _createOrNull(int? value) => value == null ? null : EquipmentTypeId.fromValue(value); static const int minValue = 0; static const int maxValue = 1; static bool containsValue(int value) => values.containsKey(value); static const EquipmentTypeId NONE = EquipmentTypeId._(0); static const EquipmentTypeId Weapon = EquipmentTypeId._(1); static const Map values = { 0: NONE, 1: Weapon}; static const fb.Reader reader = _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) => EquipmentTypeId.fromValue(const fb.Uint8Reader().read(bc, offset)); } class Vec3 { Vec3._(this._bc, this._bcOffset); static const fb.Reader reader = _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) => Vec3._(bc, offset); } class Vec3Builder { Vec3Builder(this.fbBuilder); 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({ required double x, required double y, required double z, }) : _x = x, _y = y, _z = z; /// Finish building, and store into the [fbBuilder]. @override int finish(fb.Builder fbBuilder) { fbBuilder.putFloat32(_z); fbBuilder.putFloat32(_y); fbBuilder.putFloat32(_x); return fbBuilder.offset; } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String? fileIdentifier]) { final fbBuilder = fb.Builder(deduplicateTables: false); fbBuilder.finish(finish(fbBuilder), fileIdentifier); return fbBuilder.buffer; } } class Monster { Monster._(this._bc, this._bcOffset); factory Monster(List bytes) { final rootRef = fb.BufferContext.fromBytes(bytes); return reader.read(rootRef, 0); } static const fb.Reader reader = _MonsterReader(); final fb.BufferContext _bc; final int _bcOffset; Vec3? get pos => Vec3.reader.vTableGetNullable(_bc, _bcOffset, 4); 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().vTableGetNullable(_bc, _bcOffset, 10); List? get inventory => const fb.Uint8ListReader().vTableGetNullable(_bc, _bcOffset, 14); Color get color => Color.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 16, 2)); List? get weapons => const fb.ListReader(Weapon.reader).vTableGetNullable(_bc, _bcOffset, 18); EquipmentTypeId? get equippedType => EquipmentTypeId._createOrNull(const fb.Uint8Reader().vTableGetNullable(_bc, _bcOffset, 20)); dynamic get equipped { switch (equippedType?.value) { case 1: return Weapon.reader.vTableGetNullable(_bc, _bcOffset, 22); default: return null; } } List? get path => const fb.ListReader(Vec3.reader).vTableGetNullable(_bc, _bcOffset, 24); @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) => Monster._(bc, offset); } class MonsterBuilder { MonsterBuilder(this.fbBuilder); final fb.Builder fbBuilder; void begin() { fbBuilder.startTable(10); } 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) { final int? nameOffset = _name == null ? null : fbBuilder.writeString(_name!); final int? inventoryOffset = _inventory == null ? null : fbBuilder.writeListUint8(_inventory!); final int? weaponsOffset = _weapons == null ? null : fbBuilder.writeList(_weapons!.map((b) => b.getOrCreateOffset(fbBuilder)).toList()); final int? equippedOffset = _equipped?.getOrCreateOffset(fbBuilder); final int? pathOffset = _path == null ? null : fbBuilder.writeListOfStructs(_path!); fbBuilder.startTable(10); if (_pos != null) { fbBuilder.addStruct(0, _pos!.finish(fbBuilder)); } fbBuilder.addInt16(1, _mana); fbBuilder.addInt16(2, _hp); fbBuilder.addOffset(3, nameOffset); fbBuilder.addOffset(5, inventoryOffset); fbBuilder.addInt8(6, _color?.value); fbBuilder.addOffset(7, weaponsOffset); fbBuilder.addUint8(8, _equippedType?.value); fbBuilder.addOffset(9, equippedOffset); fbBuilder.addOffset(10, pathOffset); return fbBuilder.endTable(); } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String? fileIdentifier]) { final fbBuilder = fb.Builder(deduplicateTables: false); fbBuilder.finish(finish(fbBuilder), fileIdentifier); return fbBuilder.buffer; } } class Weapon { Weapon._(this._bc, this._bcOffset); factory Weapon(List bytes) { final rootRef = fb.BufferContext.fromBytes(bytes); return reader.read(rootRef, 0); } static const fb.Reader reader = _WeaponReader(); final fb.BufferContext _bc; final int _bcOffset; String? get name => const fb.StringReader().vTableGetNullable(_bc, _bcOffset, 4); int get damage => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 6, 0); @override String toString() { return 'Weapon{name: $name, damage: $damage}'; } } class _WeaponReader extends fb.TableReader { const _WeaponReader(); @override Weapon createObject(fb.BufferContext bc, int offset) => Weapon._(bc, offset); } class WeaponBuilder { WeaponBuilder(this.fbBuilder); final fb.Builder fbBuilder; void begin() { fbBuilder.startTable(2); } 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) { final int? nameOffset = _name == null ? null : fbBuilder.writeString(_name!); fbBuilder.startTable(2); fbBuilder.addOffset(0, nameOffset); fbBuilder.addInt16(1, _damage); return fbBuilder.endTable(); } /// Convenience method to serialize to byte list. @override Uint8List toBytes([String? fileIdentifier]) { final fbBuilder = fb.Builder(deduplicateTables: false); fbBuilder.finish(finish(fbBuilder), fileIdentifier); return fbBuilder.buffer; } }