Austin Schuh | e89fa2d | 2019-08-14 20:24:23 -0700 | [diff] [blame] | 1 | // <auto-generated> |
| 2 | // automatically generated by the FlatBuffers compiler, do not modify |
| 3 | // </auto-generated> |
| 4 | |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 5 | [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] |
Austin Schuh | e89fa2d | 2019-08-14 20:24:23 -0700 | [diff] [blame] | 6 | public enum Character : byte |
| 7 | { |
| 8 | NONE = 0, |
| 9 | MuLan = 1, |
| 10 | Rapunzel = 2, |
| 11 | Belle = 3, |
| 12 | BookFan = 4, |
| 13 | Other = 5, |
| 14 | Unused = 6, |
| 15 | }; |
| 16 | |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 17 | public class CharacterUnion { |
| 18 | public Character Type { get; set; } |
| 19 | public object Value { get; set; } |
| 20 | |
| 21 | public CharacterUnion() { |
| 22 | this.Type = Character.NONE; |
| 23 | this.Value = null; |
| 24 | } |
| 25 | |
| 26 | public T As<T>() where T : class { return this.Value as T; } |
| 27 | public AttackerT AsMuLan() { return this.As<AttackerT>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 28 | public static CharacterUnion FromMuLan(AttackerT _mulan) { return new CharacterUnion{ Type = Character.MuLan, Value = _mulan }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 29 | public RapunzelT AsRapunzel() { return this.As<RapunzelT>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 30 | public static CharacterUnion FromRapunzel(RapunzelT _rapunzel) { return new CharacterUnion{ Type = Character.Rapunzel, Value = _rapunzel }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 31 | public BookReaderT AsBelle() { return this.As<BookReaderT>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 32 | public static CharacterUnion FromBelle(BookReaderT _belle) { return new CharacterUnion{ Type = Character.Belle, Value = _belle }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 33 | public BookReaderT AsBookFan() { return this.As<BookReaderT>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 34 | public static CharacterUnion FromBookFan(BookReaderT _bookfan) { return new CharacterUnion{ Type = Character.BookFan, Value = _bookfan }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 35 | public string AsOther() { return this.As<string>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 36 | public static CharacterUnion FromOther(string _other) { return new CharacterUnion{ Type = Character.Other, Value = _other }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 37 | public string AsUnused() { return this.As<string>(); } |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 38 | public static CharacterUnion FromUnused(string _unused) { return new CharacterUnion{ Type = Character.Unused, Value = _unused }; } |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 39 | |
Austin Schuh | 2dd86a9 | 2022-09-14 21:19:23 -0700 | [diff] [blame^] | 40 | public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, CharacterUnion _o) { |
Austin Schuh | 272c613 | 2020-11-14 16:37:52 -0800 | [diff] [blame] | 41 | switch (_o.Type) { |
| 42 | default: return 0; |
| 43 | case Character.MuLan: return Attacker.Pack(builder, _o.AsMuLan()).Value; |
| 44 | case Character.Rapunzel: return Rapunzel.Pack(builder, _o.AsRapunzel()).Value; |
| 45 | case Character.Belle: return BookReader.Pack(builder, _o.AsBelle()).Value; |
| 46 | case Character.BookFan: return BookReader.Pack(builder, _o.AsBookFan()).Value; |
| 47 | case Character.Other: return builder.CreateString(_o.AsOther()).Value; |
| 48 | case Character.Unused: return builder.CreateString(_o.AsUnused()).Value; |
| 49 | } |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | public class CharacterUnion_JsonConverter : Newtonsoft.Json.JsonConverter { |
| 54 | public override bool CanConvert(System.Type objectType) { |
| 55 | return objectType == typeof(CharacterUnion) || objectType == typeof(System.Collections.Generic.List<CharacterUnion>); |
| 56 | } |
| 57 | public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { |
| 58 | var _olist = value as System.Collections.Generic.List<CharacterUnion>; |
| 59 | if (_olist != null) { |
| 60 | writer.WriteStartArray(); |
| 61 | foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); } |
| 62 | writer.WriteEndArray(); |
| 63 | } else { |
| 64 | this.WriteJson(writer, value as CharacterUnion, serializer); |
| 65 | } |
| 66 | } |
| 67 | public void WriteJson(Newtonsoft.Json.JsonWriter writer, CharacterUnion _o, Newtonsoft.Json.JsonSerializer serializer) { |
| 68 | if (_o == null) return; |
| 69 | serializer.Serialize(writer, _o.Value); |
| 70 | } |
| 71 | public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { |
| 72 | var _olist = existingValue as System.Collections.Generic.List<CharacterUnion>; |
| 73 | if (_olist != null) { |
| 74 | for (var _j = 0; _j < _olist.Count; ++_j) { |
| 75 | reader.Read(); |
| 76 | _olist[_j] = this.ReadJson(reader, _olist[_j], serializer); |
| 77 | } |
| 78 | reader.Read(); |
| 79 | return _olist; |
| 80 | } else { |
| 81 | return this.ReadJson(reader, existingValue as CharacterUnion, serializer); |
| 82 | } |
| 83 | } |
| 84 | public CharacterUnion ReadJson(Newtonsoft.Json.JsonReader reader, CharacterUnion _o, Newtonsoft.Json.JsonSerializer serializer) { |
| 85 | if (_o == null) return null; |
| 86 | switch (_o.Type) { |
| 87 | default: break; |
| 88 | case Character.MuLan: _o.Value = serializer.Deserialize<AttackerT>(reader); break; |
| 89 | case Character.Rapunzel: _o.Value = serializer.Deserialize<RapunzelT>(reader); break; |
| 90 | case Character.Belle: _o.Value = serializer.Deserialize<BookReaderT>(reader); break; |
| 91 | case Character.BookFan: _o.Value = serializer.Deserialize<BookReaderT>(reader); break; |
| 92 | case Character.Other: _o.Value = serializer.Deserialize<string>(reader); break; |
| 93 | case Character.Unused: _o.Value = serializer.Deserialize<string>(reader); break; |
| 94 | } |
| 95 | return _o; |
| 96 | } |
| 97 | } |
| 98 | |