1// automatically generated by the FlatBuffers compiler, do not modify
2// ignore_for_file: unused_import, unused_field, unused_local_variable
3
4library my_game.sample;
5
6import 'dart:typed_data' show Uint8List;
7import 'package:flat_buffers/flat_buffers.dart' as fb;
8
9
10class Color {
11  final int value;
12  const Color._(this.value);
13
14  factory Color.fromValue(int value) {
15    if (value == null) value = 0;
16    if (!values.containsKey(value)) {
17      throw new StateError('Invalid value $value for bit flag enum Color');
18    }
19    return values[value];
20  }
21
22  static const int minValue = 0;
23  static const int maxValue = 2;
24  static bool containsValue(int value) => values.containsKey(value);
25
26  static const Color Red = const Color._(0);
27  static const Color Green = const Color._(1);
28  static const Color Blue = const Color._(2);
29  static const Map<int,Color> values = {0: Red,1: Green,2: Blue,};
30
31  static const fb.Reader<Color> reader = const _ColorReader();
32
33  @override
34  String toString() {
35    return 'Color{value: $value}';
36  }
37}
38
39class _ColorReader extends fb.Reader<Color> {
40  const _ColorReader();
41
42  @override
43  int get size => 1;
44
45  @override
46  Color read(fb.BufferContext bc, int offset) =>
47      new Color.fromValue(const fb.Int8Reader().read(bc, offset));
48}
49
50class EquipmentTypeId {
51  final int value;
52  const EquipmentTypeId._(this.value);
53
54  factory EquipmentTypeId.fromValue(int value) {
55    if (value == null) value = 0;
56    if (!values.containsKey(value)) {
57      throw new StateError('Invalid value $value for bit flag enum EquipmentTypeId');
58    }
59    return values[value];
60  }
61
62  static const int minValue = 0;
63  static const int maxValue = 1;
64  static bool containsValue(int value) => values.containsKey(value);
65
66  static const EquipmentTypeId NONE = const EquipmentTypeId._(0);
67  static const EquipmentTypeId Weapon = const EquipmentTypeId._(1);
68  static const Map<int,EquipmentTypeId> values = {0: NONE,1: Weapon,};
69
70  static const fb.Reader<EquipmentTypeId> reader = const _EquipmentTypeIdReader();
71
72  @override
73  String toString() {
74    return 'EquipmentTypeId{value: $value}';
75  }
76}
77
78class _EquipmentTypeIdReader extends fb.Reader<EquipmentTypeId> {
79  const _EquipmentTypeIdReader();
80
81  @override
82  int get size => 1;
83
84  @override
85  EquipmentTypeId read(fb.BufferContext bc, int offset) =>
86      new EquipmentTypeId.fromValue(const fb.Uint8Reader().read(bc, offset));
87}
88
89class Vec3 {
90  Vec3._(this._bc, this._bcOffset);
91
92  static const fb.Reader<Vec3> reader = const _Vec3Reader();
93
94  final fb.BufferContext _bc;
95  final int _bcOffset;
96
97  double get x => const fb.Float32Reader().read(_bc, _bcOffset + 0);
98  double get y => const fb.Float32Reader().read(_bc, _bcOffset + 4);
99  double get z => const fb.Float32Reader().read(_bc, _bcOffset + 8);
100
101  @override
102  String toString() {
103    return 'Vec3{x: $x, y: $y, z: $z}';
104  }
105}
106
107class _Vec3Reader extends fb.StructReader<Vec3> {
108  const _Vec3Reader();
109
110  @override
111  int get size => 12;
112
113  @override
114  Vec3 createObject(fb.BufferContext bc, int offset) =>
115    new Vec3._(bc, offset);
116}
117
118class Vec3Builder {
119  Vec3Builder(this.fbBuilder) {
120    assert(fbBuilder != null);
121  }
122
123  final fb.Builder fbBuilder;
124
125  int finish(double x, double y, double z) {
126    fbBuilder.putFloat32(z);
127    fbBuilder.putFloat32(y);
128    fbBuilder.putFloat32(x);
129    return fbBuilder.offset;
130  }
131
132}
133
134class Vec3ObjectBuilder extends fb.ObjectBuilder {
135  final double _x;
136  final double _y;
137  final double _z;
138
139  Vec3ObjectBuilder({
140    double x,
141    double y,
142    double z,
143  })
144      : _x = x,
145        _y = y,
146        _z = z;
147
148  /// Finish building, and store into the [fbBuilder].
149  @override
150  int finish(
151    fb.Builder fbBuilder) {
152    assert(fbBuilder != null);
153
154    fbBuilder.putFloat32(_z);
155    fbBuilder.putFloat32(_y);
156    fbBuilder.putFloat32(_x);
157    return fbBuilder.offset;
158  }
159
160  /// Convenience method to serialize to byte list.
161  @override
162  Uint8List toBytes([String fileIdentifier]) {
163    fb.Builder fbBuilder = new fb.Builder();
164    int offset = finish(fbBuilder);
165    return fbBuilder.finish(offset, fileIdentifier);
166  }
167}
168class Monster {
169  Monster._(this._bc, this._bcOffset);
170  factory Monster(List<int> bytes) {
171    fb.BufferContext rootRef = new fb.BufferContext.fromBytes(bytes);
172    return reader.read(rootRef, 0);
173  }
174
175  static const fb.Reader<Monster> reader = const _MonsterReader();
176
177  final fb.BufferContext _bc;
178  final int _bcOffset;
179
180  Vec3 get pos => Vec3.reader.vTableGet(_bc, _bcOffset, 4, null);
181  int get mana => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 6, 150);
182  int get hp => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 8, 100);
183  String get name => const fb.StringReader().vTableGet(_bc, _bcOffset, 10, null);
184  List<int> get inventory => const fb.ListReader<int>(const fb.Uint8Reader()).vTableGet(_bc, _bcOffset, 14, null);
185  Color get color => new Color.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 16, 2));
186  List<Weapon> get weapons => const fb.ListReader<Weapon>(Weapon.reader).vTableGet(_bc, _bcOffset, 18, null);
187  EquipmentTypeId get equippedType => new EquipmentTypeId.fromValue(const fb.Uint8Reader().vTableGet(_bc, _bcOffset, 20, 0));
188  dynamic get equipped {
189    switch (equippedType?.value) {
190      case 1: return Weapon.reader.vTableGet(_bc, _bcOffset, 22, null);
191      default: return null;
192    }
193  }
194  List<Vec3> get path => const fb.ListReader<Vec3>(Vec3.reader).vTableGet(_bc, _bcOffset, 24, null);
195
196  @override
197  String toString() {
198    return 'Monster{pos: $pos, mana: $mana, hp: $hp, name: $name, inventory: $inventory, color: $color, weapons: $weapons, equippedType: $equippedType, equipped: $equipped, path: $path}';
199  }
200}
201
202class _MonsterReader extends fb.TableReader<Monster> {
203  const _MonsterReader();
204
205  @override
206  Monster createObject(fb.BufferContext bc, int offset) =>
207    new Monster._(bc, offset);
208}
209
210class MonsterBuilder {
211  MonsterBuilder(this.fbBuilder) {
212    assert(fbBuilder != null);
213  }
214
215  final fb.Builder fbBuilder;
216
217  void begin() {
218    fbBuilder.startTable();
219  }
220
221  int addPos(int offset) {
222    fbBuilder.addStruct(0, offset);
223    return fbBuilder.offset;
224  }
225  int addMana(int mana) {
226    fbBuilder.addInt16(1, mana);
227    return fbBuilder.offset;
228  }
229  int addHp(int hp) {
230    fbBuilder.addInt16(2, hp);
231    return fbBuilder.offset;
232  }
233  int addNameOffset(int offset) {
234    fbBuilder.addOffset(3, offset);
235    return fbBuilder.offset;
236  }
237  int addInventoryOffset(int offset) {
238    fbBuilder.addOffset(5, offset);
239    return fbBuilder.offset;
240  }
241  int addColor(Color color) {
242    fbBuilder.addInt8(6, color?.value);
243    return fbBuilder.offset;
244  }
245  int addWeaponsOffset(int offset) {
246    fbBuilder.addOffset(7, offset);
247    return fbBuilder.offset;
248  }
249  int addEquippedType(EquipmentTypeId equippedType) {
250    fbBuilder.addUint8(8, equippedType?.value);
251    return fbBuilder.offset;
252  }
253  int addEquippedOffset(int offset) {
254    fbBuilder.addOffset(9, offset);
255    return fbBuilder.offset;
256  }
257  int addPathOffset(int offset) {
258    fbBuilder.addOffset(10, offset);
259    return fbBuilder.offset;
260  }
261
262  int finish() {
263    return fbBuilder.endTable();
264  }
265}
266
267class MonsterObjectBuilder extends fb.ObjectBuilder {
268  final Vec3ObjectBuilder _pos;
269  final int _mana;
270  final int _hp;
271  final String _name;
272  final List<int> _inventory;
273  final Color _color;
274  final List<WeaponObjectBuilder> _weapons;
275  final EquipmentTypeId _equippedType;
276  final dynamic _equipped;
277  final List<Vec3ObjectBuilder> _path;
278
279  MonsterObjectBuilder({
280    Vec3ObjectBuilder pos,
281    int mana,
282    int hp,
283    String name,
284    List<int> inventory,
285    Color color,
286    List<WeaponObjectBuilder> weapons,
287    EquipmentTypeId equippedType,
288    dynamic equipped,
289    List<Vec3ObjectBuilder> path,
290  })
291      : _pos = pos,
292        _mana = mana,
293        _hp = hp,
294        _name = name,
295        _inventory = inventory,
296        _color = color,
297        _weapons = weapons,
298        _equippedType = equippedType,
299        _equipped = equipped,
300        _path = path;
301
302  /// Finish building, and store into the [fbBuilder].
303  @override
304  int finish(
305    fb.Builder fbBuilder) {
306    assert(fbBuilder != null);
307    final int nameOffset = fbBuilder.writeString(_name);
308    final int inventoryOffset = _inventory?.isNotEmpty == true
309        ? fbBuilder.writeListUint8(_inventory)
310        : null;
311    final int weaponsOffset = _weapons?.isNotEmpty == true
312        ? fbBuilder.writeList(_weapons.map((b) => b.getOrCreateOffset(fbBuilder)).toList())
313        : null;
314    final int equippedOffset = _equipped?.getOrCreateOffset(fbBuilder);
315    final int pathOffset = _path?.isNotEmpty == true
316        ? fbBuilder.writeListOfStructs(_path)
317        : null;
318
319    fbBuilder.startTable();
320    if (_pos != null) {
321      fbBuilder.addStruct(0, _pos.finish(fbBuilder));
322    }
323    fbBuilder.addInt16(1, _mana);
324    fbBuilder.addInt16(2, _hp);
325    if (nameOffset != null) {
326      fbBuilder.addOffset(3, nameOffset);
327    }
328    if (inventoryOffset != null) {
329      fbBuilder.addOffset(5, inventoryOffset);
330    }
331    fbBuilder.addInt8(6, _color?.value);
332    if (weaponsOffset != null) {
333      fbBuilder.addOffset(7, weaponsOffset);
334    }
335    fbBuilder.addUint8(8, _equippedType?.value);
336    if (equippedOffset != null) {
337      fbBuilder.addOffset(9, equippedOffset);
338    }
339    if (pathOffset != null) {
340      fbBuilder.addOffset(10, pathOffset);
341    }
342    return fbBuilder.endTable();
343  }
344
345  /// Convenience method to serialize to byte list.
346  @override
347  Uint8List toBytes([String fileIdentifier]) {
348    fb.Builder fbBuilder = new fb.Builder();
349    int offset = finish(fbBuilder);
350    return fbBuilder.finish(offset, fileIdentifier);
351  }
352}
353class Weapon {
354  Weapon._(this._bc, this._bcOffset);
355  factory Weapon(List<int> bytes) {
356    fb.BufferContext rootRef = new fb.BufferContext.fromBytes(bytes);
357    return reader.read(rootRef, 0);
358  }
359
360  static const fb.Reader<Weapon> reader = const _WeaponReader();
361
362  final fb.BufferContext _bc;
363  final int _bcOffset;
364
365  String get name => const fb.StringReader().vTableGet(_bc, _bcOffset, 4, null);
366  int get damage => const fb.Int16Reader().vTableGet(_bc, _bcOffset, 6, 0);
367
368  @override
369  String toString() {
370    return 'Weapon{name: $name, damage: $damage}';
371  }
372}
373
374class _WeaponReader extends fb.TableReader<Weapon> {
375  const _WeaponReader();
376
377  @override
378  Weapon createObject(fb.BufferContext bc, int offset) =>
379    new Weapon._(bc, offset);
380}
381
382class WeaponBuilder {
383  WeaponBuilder(this.fbBuilder) {
384    assert(fbBuilder != null);
385  }
386
387  final fb.Builder fbBuilder;
388
389  void begin() {
390    fbBuilder.startTable();
391  }
392
393  int addNameOffset(int offset) {
394    fbBuilder.addOffset(0, offset);
395    return fbBuilder.offset;
396  }
397  int addDamage(int damage) {
398    fbBuilder.addInt16(1, damage);
399    return fbBuilder.offset;
400  }
401
402  int finish() {
403    return fbBuilder.endTable();
404  }
405}
406
407class WeaponObjectBuilder extends fb.ObjectBuilder {
408  final String _name;
409  final int _damage;
410
411  WeaponObjectBuilder({
412    String name,
413    int damage,
414  })
415      : _name = name,
416        _damage = damage;
417
418  /// Finish building, and store into the [fbBuilder].
419  @override
420  int finish(
421    fb.Builder fbBuilder) {
422    assert(fbBuilder != null);
423    final int nameOffset = fbBuilder.writeString(_name);
424
425    fbBuilder.startTable();
426    if (nameOffset != null) {
427      fbBuilder.addOffset(0, nameOffset);
428    }
429    fbBuilder.addInt16(1, _damage);
430    return fbBuilder.endTable();
431  }
432
433  /// Convenience method to serialize to byte list.
434  @override
435  Uint8List toBytes([String fileIdentifier]) {
436    fb.Builder fbBuilder = new fb.Builder();
437    int offset = finish(fbBuilder);
438    return fbBuilder.finish(offset, fileIdentifier);
439  }
440}
441