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