< Summary

Class:Configs.PowerTableEntry
Assembly:bamlab.micromissiles
File(s):/github/workspace/Assets/Scripts/Generated/Proto/StaticConfig.cs
Covered lines:25
Uncovered lines:80
Coverable lines:105
Total lines:2839
Line coverage:23.8% (25 of 105)
Covered branches:0
Total branches:0
Covered methods:8
Total methods:21
Method coverage:38% (8 of 21)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
PowerTableEntry()0%110100%
get_Descriptor()0%2100%
PowerTableEntry(...)0%2100%
Clone()0%2100%
PowerTableEntry()0%110100%
Equals(...)0%2100%
Equals(...)0%30500%
GetHashCode()0%20400%
ToString()0%2100%
WriteTo(...)0%2100%
InternalWriteTo(...)0%20400%
CalculateSize()0%20400%
MergeFrom(...)0%20400%
MergeFrom(...)0%2100%
InternalMergeFrom(...)0%5.335076.47%

File(s)

/github/workspace/Assets/Scripts/Generated/Proto/StaticConfig.cs

#LineLine coverage
 1// <auto-generated>
 2//     Generated by the protocol buffer compiler.  DO NOT EDIT!
 3//     source: Configs/static_config.proto
 4// </auto-generated>
 5#pragma warning disable 1591, 0612, 3021, 8981
 6#region Designer generated code
 7
 8using pb = global::Google.Protobuf;
 9using pbc = global::Google.Protobuf.Collections;
 10using pbr = global::Google.Protobuf.Reflection;
 11using scg = global::System.Collections.Generic;
 12namespace Configs {
 13
 14  /// <summary>Holder for reflection information generated from Configs/static_config.proto</summary>
 15  public static partial class StaticConfigReflection {
 16
 17    #region Descriptor
 18    /// <summary>File descriptor for Configs/static_config.proto</summary>
 19    public static pbr::FileDescriptor Descriptor {
 20      get { return descriptor; }
 21    }
 22    private static pbr::FileDescriptor descriptor;
 23
 24    static StaticConfigReflection() {
 25      byte[] descriptorData = global::System.Convert.FromBase64String(
 26          string.Concat(
 27            "ChtDb25maWdzL3N0YXRpY19jb25maWcucHJvdG8SB2NvbmZpZ3MiegoSQWNj",
 28            "ZWxlcmF0aW9uQ29uZmlnEiAKGG1heF9mb3J3YXJkX2FjY2VsZXJhdGlvbhgB",
 29            "IAEoAhIpCiFtYXhfcmVmZXJlbmNlX25vcm1hbF9hY2NlbGVyYXRpb24YAiAB",
 30            "KAISFwoPcmVmZXJlbmNlX3NwZWVkGAMgASgCIj0KC0Jvb3N0Q29uZmlnEhIK",
 31            "CmJvb3N0X3RpbWUYASABKAISGgoSYm9vc3RfYWNjZWxlcmF0aW9uGAIgASgC",
 32            "Il0KDkxpZnREcmFnQ29uZmlnEhgKEGxpZnRfY29lZmZpY2llbnQYASABKAIS",
 33            "GAoQZHJhZ19jb2VmZmljaWVudBgCIAEoAhIXCg9saWZ0X2RyYWdfcmF0aW8Y",
 34            "AyABKAIiXQoKQm9keUNvbmZpZxIMCgRtYXNzGAEgASgCEhwKFGNyb3NzX3Nl",
 35            "Y3Rpb25hbF9hcmVhGAIgASgCEhAKCGZpbl9hcmVhGAMgASgCEhEKCWJvZHlf",
 36            "YXJlYRgEIAEoAiI5CglIaXRDb25maWcSEgoKaGl0X3JhZGl1cxgBIAEoAhIY",
 37            "ChBraWxsX3Byb2JhYmlsaXR5GAIgASgCIkMKEENvbnRyb2xsZXJDb25maWcS",
 38            "LwoncHJvcG9ydGlvbmFsX25hdmlnYXRpb25fcmFuZ2VfdGhyZXNob2xkGAEg",
 39            "ASgCIj8KD1Bvd2VyVGFibGVFbnRyeRIdCgVwb3dlchgBIAEoDjIOLmNvbmZp",
 40            "Z3MuUG93ZXISDQoFc3BlZWQYAiABKAIiRwoTVmlzdWFsaXphdGlvbkNvbmZp",
 41            "ZxIWCg5zeW1ib2xfcHJlc2VudBgBIAEoCRIYChBzeW1ib2xfZGVzdHJveWVk",
 42            "GAIgASgJIt4DCgxTdGF0aWNDb25maWcSDAoEbmFtZRgBIAEoCRImCgphZ2Vu",
 43            "dF90eXBlGAIgASgOMhIuY29uZmlncy5BZ2VudFR5cGUSDAoEY29zdBgDIAEo",
 44            "AhI4ChNhY2NlbGVyYXRpb25fY29uZmlnGAQgASgLMhsuY29uZmlncy5BY2Nl",
 45            "bGVyYXRpb25Db25maWcSKgoMYm9vc3RfY29uZmlnGAUgASgLMhQuY29uZmln",
 46            "cy5Cb29zdENvbmZpZxIxChBsaWZ0X2RyYWdfY29uZmlnGAYgASgLMhcuY29u",
 47            "Zmlncy5MaWZ0RHJhZ0NvbmZpZxIoCgtib2R5X2NvbmZpZxgHIAEoCzITLmNv",
 48            "bmZpZ3MuQm9keUNvbmZpZxImCgpoaXRfY29uZmlnGAggASgLMhIuY29uZmln",
 49            "cy5IaXRDb25maWcSNAoRY29udHJvbGxlcl9jb25maWcYCSABKAsyGS5jb25m",
 50            "aWdzLkNvbnRyb2xsZXJDb25maWcSLQoLcG93ZXJfdGFibGUYCiADKAsyGC5j",
 51            "b25maWdzLlBvd2VyVGFibGVFbnRyeRI6ChR2aXN1YWxpemF0aW9uX2NvbmZp",
 52            "ZxgLIAEoCzIcLmNvbmZpZ3MuVmlzdWFsaXphdGlvbkNvbmZpZyp+CglBZ2Vu",
 53            "dFR5cGUSEAoMSU5WQUxJRF9UWVBFEAASFwoTQ0FSUklFUl9JTlRFUkNFUFRP",
 54            "UhABEhcKE01JU1NJTEVfSU5URVJDRVBUT1IQAhIVChFGSVhFRF9XSU5HX1RI",
 55            "UkVBVBADEhYKElJPVEFSWV9XSU5HX1RIUkVBVBAEKjgKBVBvd2VyEggKBElE",
 56            "TEUQABIHCgNMT1cQARIKCgZDUlVJU0UQAhIHCgNNSUwQAxIHCgNNQVgQBGIG",
 57            "cHJvdG8z"));
 58      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
 59          new pbr::FileDescriptor[] { },
 60          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Configs.AgentType), typeof(global::Configs.Power), }, null
 61            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.AccelerationConfig), global::Configs.AccelerationConfig
 62            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.BoostConfig), global::Configs.BoostConfig.Parser, new[]
 63            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.LiftDragConfig), global::Configs.LiftDragConfig.Parser,
 64            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.BodyConfig), global::Configs.BodyConfig.Parser, new[]{ 
 65            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.HitConfig), global::Configs.HitConfig.Parser, new[]{ "H
 66            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.ControllerConfig), global::Configs.ControllerConfig.Par
 67            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.PowerTableEntry), global::Configs.PowerTableEntry.Parse
 68            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.VisualizationConfig), global::Configs.VisualizationConf
 69            new pbr::GeneratedClrTypeInfo(typeof(global::Configs.StaticConfig), global::Configs.StaticConfig.Parser, new
 70          }));
 71    }
 72    #endregion
 73
 74  }
 75  #region Enums
 76  /// <summary>
 77  /// Agent type enumeration.
 78  /// </summary>
 79  public enum AgentType {
 80    [pbr::OriginalName("INVALID_TYPE")] InvalidType = 0,
 81    /// <summary>
 82    /// Interceptor types.
 83    /// </summary>
 84    [pbr::OriginalName("CARRIER_INTERCEPTOR")] CarrierInterceptor = 1,
 85    [pbr::OriginalName("MISSILE_INTERCEPTOR")] MissileInterceptor = 2,
 86    /// <summary>
 87    /// Threat types.
 88    /// </summary>
 89    [pbr::OriginalName("FIXED_WING_THREAT")] FixedWingThreat = 3,
 90    [pbr::OriginalName("ROTARY_WING_THREAT")] RotaryWingThreat = 4,
 91  }
 92
 93  /// <summary>
 94  /// Power enumeration.
 95  /// </summary>
 96  public enum Power {
 97    [pbr::OriginalName("IDLE")] Idle = 0,
 98    [pbr::OriginalName("LOW")] Low = 1,
 99    [pbr::OriginalName("CRUISE")] Cruise = 2,
 100    [pbr::OriginalName("MIL")] Mil = 3,
 101    [pbr::OriginalName("MAX")] Max = 4,
 102  }
 103
 104  #endregion
 105
 106  #region Messages
 107  /// <summary>
 108  /// Acceleration configuration.
 109  /// </summary>
 110  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 111  public sealed partial class AccelerationConfig : pb::IMessage<AccelerationConfig>
 112  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 113      , pb::IBufferMessage
 114  #endif
 115  {
 116    private static readonly pb::MessageParser<AccelerationConfig> _parser = new pb::MessageParser<AccelerationConfig>(()
 117    private pb::UnknownFieldSet _unknownFields;
 118    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 119    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 120    public static pb::MessageParser<AccelerationConfig> Parser { get { return _parser; } }
 121
 122    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 123    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 124    public static pbr::MessageDescriptor Descriptor {
 125      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[0]; }
 126    }
 127
 128    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 129    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 130    pbr::MessageDescriptor pb::IMessage.Descriptor {
 131      get { return Descriptor; }
 132    }
 133
 134    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 135    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 136    public AccelerationConfig() {
 137      OnConstruction();
 138    }
 139
 140    partial void OnConstruction();
 141
 142    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 143    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 144    public AccelerationConfig(AccelerationConfig other) : this() {
 145      maxForwardAcceleration_ = other.maxForwardAcceleration_;
 146      maxReferenceNormalAcceleration_ = other.maxReferenceNormalAcceleration_;
 147      referenceSpeed_ = other.referenceSpeed_;
 148      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 149    }
 150
 151    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 152    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 153    public AccelerationConfig Clone() {
 154      return new AccelerationConfig(this);
 155    }
 156
 157    /// <summary>Field number for the "max_forward_acceleration" field.</summary>
 158    public const int MaxForwardAccelerationFieldNumber = 1;
 159    private float maxForwardAcceleration_;
 160    /// <summary>
 161    /// Maximum forward acceleration in g.
 162    /// </summary>
 163    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 164    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 165    public float MaxForwardAcceleration {
 166      get { return maxForwardAcceleration_; }
 167      set {
 168        maxForwardAcceleration_ = value;
 169      }
 170    }
 171
 172    /// <summary>Field number for the "max_reference_normal_acceleration" field.</summary>
 173    public const int MaxReferenceNormalAccelerationFieldNumber = 2;
 174    private float maxReferenceNormalAcceleration_;
 175    /// <summary>
 176    /// Maximum reference normal acceleration in g.
 177    /// </summary>
 178    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 179    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 180    public float MaxReferenceNormalAcceleration {
 181      get { return maxReferenceNormalAcceleration_; }
 182      set {
 183        maxReferenceNormalAcceleration_ = value;
 184      }
 185    }
 186
 187    /// <summary>Field number for the "reference_speed" field.</summary>
 188    public const int ReferenceSpeedFieldNumber = 3;
 189    private float referenceSpeed_;
 190    /// <summary>
 191    /// Reference speed in m/s.
 192    /// </summary>
 193    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 194    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 195    public float ReferenceSpeed {
 196      get { return referenceSpeed_; }
 197      set {
 198        referenceSpeed_ = value;
 199      }
 200    }
 201
 202    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 203    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 204    public override bool Equals(object other) {
 205      return Equals(other as AccelerationConfig);
 206    }
 207
 208    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 209    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 210    public bool Equals(AccelerationConfig other) {
 211      if (ReferenceEquals(other, null)) {
 212        return false;
 213      }
 214      if (ReferenceEquals(other, this)) {
 215        return true;
 216      }
 217      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxForwardAcceleration, other.MaxForwardA
 218      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxReferenceNormalAcceleration, other.Max
 219      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ReferenceSpeed, other.ReferenceSpeed)) re
 220      return Equals(_unknownFields, other._unknownFields);
 221    }
 222
 223    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 224    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 225    public override int GetHashCode() {
 226      int hash = 1;
 227      if (MaxForwardAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode
 228      if (MaxReferenceNormalAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Get
 229      if (ReferenceSpeed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Referen
 230      if (_unknownFields != null) {
 231        hash ^= _unknownFields.GetHashCode();
 232      }
 233      return hash;
 234    }
 235
 236    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 237    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 238    public override string ToString() {
 239      return pb::JsonFormatter.ToDiagnosticString(this);
 240    }
 241
 242    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 243    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 244    public void WriteTo(pb::CodedOutputStream output) {
 245    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 246      output.WriteRawMessage(this);
 247    #else
 248      if (MaxForwardAcceleration != 0F) {
 249        output.WriteRawTag(13);
 250        output.WriteFloat(MaxForwardAcceleration);
 251      }
 252      if (MaxReferenceNormalAcceleration != 0F) {
 253        output.WriteRawTag(21);
 254        output.WriteFloat(MaxReferenceNormalAcceleration);
 255      }
 256      if (ReferenceSpeed != 0F) {
 257        output.WriteRawTag(29);
 258        output.WriteFloat(ReferenceSpeed);
 259      }
 260      if (_unknownFields != null) {
 261        _unknownFields.WriteTo(output);
 262      }
 263    #endif
 264    }
 265
 266    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 267    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 268    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 269    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 270      if (MaxForwardAcceleration != 0F) {
 271        output.WriteRawTag(13);
 272        output.WriteFloat(MaxForwardAcceleration);
 273      }
 274      if (MaxReferenceNormalAcceleration != 0F) {
 275        output.WriteRawTag(21);
 276        output.WriteFloat(MaxReferenceNormalAcceleration);
 277      }
 278      if (ReferenceSpeed != 0F) {
 279        output.WriteRawTag(29);
 280        output.WriteFloat(ReferenceSpeed);
 281      }
 282      if (_unknownFields != null) {
 283        _unknownFields.WriteTo(ref output);
 284      }
 285    }
 286    #endif
 287
 288    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 289    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 290    public int CalculateSize() {
 291      int size = 0;
 292      if (MaxForwardAcceleration != 0F) {
 293        size += 1 + 4;
 294      }
 295      if (MaxReferenceNormalAcceleration != 0F) {
 296        size += 1 + 4;
 297      }
 298      if (ReferenceSpeed != 0F) {
 299        size += 1 + 4;
 300      }
 301      if (_unknownFields != null) {
 302        size += _unknownFields.CalculateSize();
 303      }
 304      return size;
 305    }
 306
 307    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 308    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 309    public void MergeFrom(AccelerationConfig other) {
 310      if (other == null) {
 311        return;
 312      }
 313      if (other.MaxForwardAcceleration != 0F) {
 314        MaxForwardAcceleration = other.MaxForwardAcceleration;
 315      }
 316      if (other.MaxReferenceNormalAcceleration != 0F) {
 317        MaxReferenceNormalAcceleration = other.MaxReferenceNormalAcceleration;
 318      }
 319      if (other.ReferenceSpeed != 0F) {
 320        ReferenceSpeed = other.ReferenceSpeed;
 321      }
 322      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 323    }
 324
 325    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 326    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 327    public void MergeFrom(pb::CodedInputStream input) {
 328    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 329      input.ReadRawMessage(this);
 330    #else
 331      uint tag;
 332      while ((tag = input.ReadTag()) != 0) {
 333      if ((tag & 7) == 4) {
 334        // Abort on any end group tag.
 335        return;
 336      }
 337      switch(tag) {
 338          default:
 339            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 340            break;
 341          case 13: {
 342            MaxForwardAcceleration = input.ReadFloat();
 343            break;
 344          }
 345          case 21: {
 346            MaxReferenceNormalAcceleration = input.ReadFloat();
 347            break;
 348          }
 349          case 29: {
 350            ReferenceSpeed = input.ReadFloat();
 351            break;
 352          }
 353        }
 354      }
 355    #endif
 356    }
 357
 358    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 359    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 360    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 361    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 362      uint tag;
 363      while ((tag = input.ReadTag()) != 0) {
 364      if ((tag & 7) == 4) {
 365        // Abort on any end group tag.
 366        return;
 367      }
 368      switch(tag) {
 369          default:
 370            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 371            break;
 372          case 13: {
 373            MaxForwardAcceleration = input.ReadFloat();
 374            break;
 375          }
 376          case 21: {
 377            MaxReferenceNormalAcceleration = input.ReadFloat();
 378            break;
 379          }
 380          case 29: {
 381            ReferenceSpeed = input.ReadFloat();
 382            break;
 383          }
 384        }
 385      }
 386    }
 387    #endif
 388
 389  }
 390
 391  /// <summary>
 392  /// Boost configuration.
 393  /// </summary>
 394  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 395  public sealed partial class BoostConfig : pb::IMessage<BoostConfig>
 396  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 397      , pb::IBufferMessage
 398  #endif
 399  {
 400    private static readonly pb::MessageParser<BoostConfig> _parser = new pb::MessageParser<BoostConfig>(() => new BoostC
 401    private pb::UnknownFieldSet _unknownFields;
 402    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 403    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 404    public static pb::MessageParser<BoostConfig> Parser { get { return _parser; } }
 405
 406    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 407    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 408    public static pbr::MessageDescriptor Descriptor {
 409      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[1]; }
 410    }
 411
 412    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 413    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 414    pbr::MessageDescriptor pb::IMessage.Descriptor {
 415      get { return Descriptor; }
 416    }
 417
 418    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 419    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 420    public BoostConfig() {
 421      OnConstruction();
 422    }
 423
 424    partial void OnConstruction();
 425
 426    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 427    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 428    public BoostConfig(BoostConfig other) : this() {
 429      boostTime_ = other.boostTime_;
 430      boostAcceleration_ = other.boostAcceleration_;
 431      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 432    }
 433
 434    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 435    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 436    public BoostConfig Clone() {
 437      return new BoostConfig(this);
 438    }
 439
 440    /// <summary>Field number for the "boost_time" field.</summary>
 441    public const int BoostTimeFieldNumber = 1;
 442    private float boostTime_;
 443    /// <summary>
 444    /// Boost time in s.
 445    /// </summary>
 446    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 447    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 448    public float BoostTime {
 449      get { return boostTime_; }
 450      set {
 451        boostTime_ = value;
 452      }
 453    }
 454
 455    /// <summary>Field number for the "boost_acceleration" field.</summary>
 456    public const int BoostAccelerationFieldNumber = 2;
 457    private float boostAcceleration_;
 458    /// <summary>
 459    /// Boost acceleration in g.
 460    /// </summary>
 461    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 462    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 463    public float BoostAcceleration {
 464      get { return boostAcceleration_; }
 465      set {
 466        boostAcceleration_ = value;
 467      }
 468    }
 469
 470    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 471    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 472    public override bool Equals(object other) {
 473      return Equals(other as BoostConfig);
 474    }
 475
 476    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 477    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 478    public bool Equals(BoostConfig other) {
 479      if (ReferenceEquals(other, null)) {
 480        return false;
 481      }
 482      if (ReferenceEquals(other, this)) {
 483        return true;
 484      }
 485      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BoostTime, other.BoostTime)) return false
 486      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BoostAcceleration, other.BoostAcceleratio
 487      return Equals(_unknownFields, other._unknownFields);
 488    }
 489
 490    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 491    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 492    public override int GetHashCode() {
 493      int hash = 1;
 494      if (BoostTime != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BoostTime);
 495      if (BoostAcceleration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Boos
 496      if (_unknownFields != null) {
 497        hash ^= _unknownFields.GetHashCode();
 498      }
 499      return hash;
 500    }
 501
 502    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 503    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 504    public override string ToString() {
 505      return pb::JsonFormatter.ToDiagnosticString(this);
 506    }
 507
 508    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 509    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 510    public void WriteTo(pb::CodedOutputStream output) {
 511    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 512      output.WriteRawMessage(this);
 513    #else
 514      if (BoostTime != 0F) {
 515        output.WriteRawTag(13);
 516        output.WriteFloat(BoostTime);
 517      }
 518      if (BoostAcceleration != 0F) {
 519        output.WriteRawTag(21);
 520        output.WriteFloat(BoostAcceleration);
 521      }
 522      if (_unknownFields != null) {
 523        _unknownFields.WriteTo(output);
 524      }
 525    #endif
 526    }
 527
 528    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 529    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 530    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 531    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 532      if (BoostTime != 0F) {
 533        output.WriteRawTag(13);
 534        output.WriteFloat(BoostTime);
 535      }
 536      if (BoostAcceleration != 0F) {
 537        output.WriteRawTag(21);
 538        output.WriteFloat(BoostAcceleration);
 539      }
 540      if (_unknownFields != null) {
 541        _unknownFields.WriteTo(ref output);
 542      }
 543    }
 544    #endif
 545
 546    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 547    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 548    public int CalculateSize() {
 549      int size = 0;
 550      if (BoostTime != 0F) {
 551        size += 1 + 4;
 552      }
 553      if (BoostAcceleration != 0F) {
 554        size += 1 + 4;
 555      }
 556      if (_unknownFields != null) {
 557        size += _unknownFields.CalculateSize();
 558      }
 559      return size;
 560    }
 561
 562    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 563    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 564    public void MergeFrom(BoostConfig other) {
 565      if (other == null) {
 566        return;
 567      }
 568      if (other.BoostTime != 0F) {
 569        BoostTime = other.BoostTime;
 570      }
 571      if (other.BoostAcceleration != 0F) {
 572        BoostAcceleration = other.BoostAcceleration;
 573      }
 574      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 575    }
 576
 577    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 578    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 579    public void MergeFrom(pb::CodedInputStream input) {
 580    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 581      input.ReadRawMessage(this);
 582    #else
 583      uint tag;
 584      while ((tag = input.ReadTag()) != 0) {
 585      if ((tag & 7) == 4) {
 586        // Abort on any end group tag.
 587        return;
 588      }
 589      switch(tag) {
 590          default:
 591            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 592            break;
 593          case 13: {
 594            BoostTime = input.ReadFloat();
 595            break;
 596          }
 597          case 21: {
 598            BoostAcceleration = input.ReadFloat();
 599            break;
 600          }
 601        }
 602      }
 603    #endif
 604    }
 605
 606    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 607    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 608    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 609    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 610      uint tag;
 611      while ((tag = input.ReadTag()) != 0) {
 612      if ((tag & 7) == 4) {
 613        // Abort on any end group tag.
 614        return;
 615      }
 616      switch(tag) {
 617          default:
 618            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 619            break;
 620          case 13: {
 621            BoostTime = input.ReadFloat();
 622            break;
 623          }
 624          case 21: {
 625            BoostAcceleration = input.ReadFloat();
 626            break;
 627          }
 628        }
 629      }
 630    }
 631    #endif
 632
 633  }
 634
 635  /// <summary>
 636  /// Lift and drag configuration.
 637  /// </summary>
 638  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 639  public sealed partial class LiftDragConfig : pb::IMessage<LiftDragConfig>
 640  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 641      , pb::IBufferMessage
 642  #endif
 643  {
 644    private static readonly pb::MessageParser<LiftDragConfig> _parser = new pb::MessageParser<LiftDragConfig>(() => new 
 645    private pb::UnknownFieldSet _unknownFields;
 646    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 647    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 648    public static pb::MessageParser<LiftDragConfig> Parser { get { return _parser; } }
 649
 650    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 651    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 652    public static pbr::MessageDescriptor Descriptor {
 653      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[2]; }
 654    }
 655
 656    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 657    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 658    pbr::MessageDescriptor pb::IMessage.Descriptor {
 659      get { return Descriptor; }
 660    }
 661
 662    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 663    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 664    public LiftDragConfig() {
 665      OnConstruction();
 666    }
 667
 668    partial void OnConstruction();
 669
 670    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 671    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 672    public LiftDragConfig(LiftDragConfig other) : this() {
 673      liftCoefficient_ = other.liftCoefficient_;
 674      dragCoefficient_ = other.dragCoefficient_;
 675      liftDragRatio_ = other.liftDragRatio_;
 676      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 677    }
 678
 679    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 680    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 681    public LiftDragConfig Clone() {
 682      return new LiftDragConfig(this);
 683    }
 684
 685    /// <summary>Field number for the "lift_coefficient" field.</summary>
 686    public const int LiftCoefficientFieldNumber = 1;
 687    private float liftCoefficient_;
 688    /// <summary>
 689    /// Lift coefficient.
 690    /// </summary>
 691    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 692    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 693    public float LiftCoefficient {
 694      get { return liftCoefficient_; }
 695      set {
 696        liftCoefficient_ = value;
 697      }
 698    }
 699
 700    /// <summary>Field number for the "drag_coefficient" field.</summary>
 701    public const int DragCoefficientFieldNumber = 2;
 702    private float dragCoefficient_;
 703    /// <summary>
 704    /// Drag coefficient.
 705    /// </summary>
 706    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 707    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 708    public float DragCoefficient {
 709      get { return dragCoefficient_; }
 710      set {
 711        dragCoefficient_ = value;
 712      }
 713    }
 714
 715    /// <summary>Field number for the "lift_drag_ratio" field.</summary>
 716    public const int LiftDragRatioFieldNumber = 3;
 717    private float liftDragRatio_;
 718    /// <summary>
 719    /// Lift-drag ratio.
 720    /// </summary>
 721    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 722    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 723    public float LiftDragRatio {
 724      get { return liftDragRatio_; }
 725      set {
 726        liftDragRatio_ = value;
 727      }
 728    }
 729
 730    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 731    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 732    public override bool Equals(object other) {
 733      return Equals(other as LiftDragConfig);
 734    }
 735
 736    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 737    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 738    public bool Equals(LiftDragConfig other) {
 739      if (ReferenceEquals(other, null)) {
 740        return false;
 741      }
 742      if (ReferenceEquals(other, this)) {
 743        return true;
 744      }
 745      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LiftCoefficient, other.LiftCoefficient)) 
 746      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DragCoefficient, other.DragCoefficient)) 
 747      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LiftDragRatio, other.LiftDragRatio)) retu
 748      return Equals(_unknownFields, other._unknownFields);
 749    }
 750
 751    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 752    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 753    public override int GetHashCode() {
 754      int hash = 1;
 755      if (LiftCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LiftCo
 756      if (DragCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DragCo
 757      if (LiftDragRatio != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LiftDrag
 758      if (_unknownFields != null) {
 759        hash ^= _unknownFields.GetHashCode();
 760      }
 761      return hash;
 762    }
 763
 764    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 765    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 766    public override string ToString() {
 767      return pb::JsonFormatter.ToDiagnosticString(this);
 768    }
 769
 770    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 771    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 772    public void WriteTo(pb::CodedOutputStream output) {
 773    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 774      output.WriteRawMessage(this);
 775    #else
 776      if (LiftCoefficient != 0F) {
 777        output.WriteRawTag(13);
 778        output.WriteFloat(LiftCoefficient);
 779      }
 780      if (DragCoefficient != 0F) {
 781        output.WriteRawTag(21);
 782        output.WriteFloat(DragCoefficient);
 783      }
 784      if (LiftDragRatio != 0F) {
 785        output.WriteRawTag(29);
 786        output.WriteFloat(LiftDragRatio);
 787      }
 788      if (_unknownFields != null) {
 789        _unknownFields.WriteTo(output);
 790      }
 791    #endif
 792    }
 793
 794    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 795    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 796    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 797    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 798      if (LiftCoefficient != 0F) {
 799        output.WriteRawTag(13);
 800        output.WriteFloat(LiftCoefficient);
 801      }
 802      if (DragCoefficient != 0F) {
 803        output.WriteRawTag(21);
 804        output.WriteFloat(DragCoefficient);
 805      }
 806      if (LiftDragRatio != 0F) {
 807        output.WriteRawTag(29);
 808        output.WriteFloat(LiftDragRatio);
 809      }
 810      if (_unknownFields != null) {
 811        _unknownFields.WriteTo(ref output);
 812      }
 813    }
 814    #endif
 815
 816    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 817    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 818    public int CalculateSize() {
 819      int size = 0;
 820      if (LiftCoefficient != 0F) {
 821        size += 1 + 4;
 822      }
 823      if (DragCoefficient != 0F) {
 824        size += 1 + 4;
 825      }
 826      if (LiftDragRatio != 0F) {
 827        size += 1 + 4;
 828      }
 829      if (_unknownFields != null) {
 830        size += _unknownFields.CalculateSize();
 831      }
 832      return size;
 833    }
 834
 835    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 836    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 837    public void MergeFrom(LiftDragConfig other) {
 838      if (other == null) {
 839        return;
 840      }
 841      if (other.LiftCoefficient != 0F) {
 842        LiftCoefficient = other.LiftCoefficient;
 843      }
 844      if (other.DragCoefficient != 0F) {
 845        DragCoefficient = other.DragCoefficient;
 846      }
 847      if (other.LiftDragRatio != 0F) {
 848        LiftDragRatio = other.LiftDragRatio;
 849      }
 850      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 851    }
 852
 853    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 854    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 855    public void MergeFrom(pb::CodedInputStream input) {
 856    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 857      input.ReadRawMessage(this);
 858    #else
 859      uint tag;
 860      while ((tag = input.ReadTag()) != 0) {
 861      if ((tag & 7) == 4) {
 862        // Abort on any end group tag.
 863        return;
 864      }
 865      switch(tag) {
 866          default:
 867            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 868            break;
 869          case 13: {
 870            LiftCoefficient = input.ReadFloat();
 871            break;
 872          }
 873          case 21: {
 874            DragCoefficient = input.ReadFloat();
 875            break;
 876          }
 877          case 29: {
 878            LiftDragRatio = input.ReadFloat();
 879            break;
 880          }
 881        }
 882      }
 883    #endif
 884    }
 885
 886    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 887    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 888    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 889    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 890      uint tag;
 891      while ((tag = input.ReadTag()) != 0) {
 892      if ((tag & 7) == 4) {
 893        // Abort on any end group tag.
 894        return;
 895      }
 896      switch(tag) {
 897          default:
 898            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 899            break;
 900          case 13: {
 901            LiftCoefficient = input.ReadFloat();
 902            break;
 903          }
 904          case 21: {
 905            DragCoefficient = input.ReadFloat();
 906            break;
 907          }
 908          case 29: {
 909            LiftDragRatio = input.ReadFloat();
 910            break;
 911          }
 912        }
 913      }
 914    }
 915    #endif
 916
 917  }
 918
 919  /// <summary>
 920  /// Body configuration.
 921  /// </summary>
 922  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 923  public sealed partial class BodyConfig : pb::IMessage<BodyConfig>
 924  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 925      , pb::IBufferMessage
 926  #endif
 927  {
 928    private static readonly pb::MessageParser<BodyConfig> _parser = new pb::MessageParser<BodyConfig>(() => new BodyConf
 929    private pb::UnknownFieldSet _unknownFields;
 930    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 931    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 932    public static pb::MessageParser<BodyConfig> Parser { get { return _parser; } }
 933
 934    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 935    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 936    public static pbr::MessageDescriptor Descriptor {
 937      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[3]; }
 938    }
 939
 940    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 941    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 942    pbr::MessageDescriptor pb::IMessage.Descriptor {
 943      get { return Descriptor; }
 944    }
 945
 946    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 947    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 948    public BodyConfig() {
 949      OnConstruction();
 950    }
 951
 952    partial void OnConstruction();
 953
 954    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 955    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 956    public BodyConfig(BodyConfig other) : this() {
 957      mass_ = other.mass_;
 958      crossSectionalArea_ = other.crossSectionalArea_;
 959      finArea_ = other.finArea_;
 960      bodyArea_ = other.bodyArea_;
 961      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 962    }
 963
 964    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 965    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 966    public BodyConfig Clone() {
 967      return new BodyConfig(this);
 968    }
 969
 970    /// <summary>Field number for the "mass" field.</summary>
 971    public const int MassFieldNumber = 1;
 972    private float mass_;
 973    /// <summary>
 974    /// Mass in kg.
 975    /// </summary>
 976    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 977    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 978    public float Mass {
 979      get { return mass_; }
 980      set {
 981        mass_ = value;
 982      }
 983    }
 984
 985    /// <summary>Field number for the "cross_sectional_area" field.</summary>
 986    public const int CrossSectionalAreaFieldNumber = 2;
 987    private float crossSectionalArea_;
 988    /// <summary>
 989    /// Cross-sectional area in m^2.
 990    /// </summary>
 991    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 992    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 993    public float CrossSectionalArea {
 994      get { return crossSectionalArea_; }
 995      set {
 996        crossSectionalArea_ = value;
 997      }
 998    }
 999
 1000    /// <summary>Field number for the "fin_area" field.</summary>
 1001    public const int FinAreaFieldNumber = 3;
 1002    private float finArea_;
 1003    /// <summary>
 1004    /// Fin area in m^2.
 1005    /// </summary>
 1006    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1007    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1008    public float FinArea {
 1009      get { return finArea_; }
 1010      set {
 1011        finArea_ = value;
 1012      }
 1013    }
 1014
 1015    /// <summary>Field number for the "body_area" field.</summary>
 1016    public const int BodyAreaFieldNumber = 4;
 1017    private float bodyArea_;
 1018    /// <summary>
 1019    /// Body area in m^2.
 1020    /// </summary>
 1021    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1022    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1023    public float BodyArea {
 1024      get { return bodyArea_; }
 1025      set {
 1026        bodyArea_ = value;
 1027      }
 1028    }
 1029
 1030    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1031    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1032    public override bool Equals(object other) {
 1033      return Equals(other as BodyConfig);
 1034    }
 1035
 1036    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1037    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1038    public bool Equals(BodyConfig other) {
 1039      if (ReferenceEquals(other, null)) {
 1040        return false;
 1041      }
 1042      if (ReferenceEquals(other, this)) {
 1043        return true;
 1044      }
 1045      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Mass, other.Mass)) return false;
 1046      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrossSectionalArea, other.CrossSectionalA
 1047      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(FinArea, other.FinArea)) return false;
 1048      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BodyArea, other.BodyArea)) return false;
 1049      return Equals(_unknownFields, other._unknownFields);
 1050    }
 1051
 1052    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1053    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1054    public override int GetHashCode() {
 1055      int hash = 1;
 1056      if (Mass != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Mass);
 1057      if (CrossSectionalArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Cro
 1058      if (FinArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(FinArea);
 1059      if (BodyArea != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BodyArea);
 1060      if (_unknownFields != null) {
 1061        hash ^= _unknownFields.GetHashCode();
 1062      }
 1063      return hash;
 1064    }
 1065
 1066    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1067    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1068    public override string ToString() {
 1069      return pb::JsonFormatter.ToDiagnosticString(this);
 1070    }
 1071
 1072    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1073    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1074    public void WriteTo(pb::CodedOutputStream output) {
 1075    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1076      output.WriteRawMessage(this);
 1077    #else
 1078      if (Mass != 0F) {
 1079        output.WriteRawTag(13);
 1080        output.WriteFloat(Mass);
 1081      }
 1082      if (CrossSectionalArea != 0F) {
 1083        output.WriteRawTag(21);
 1084        output.WriteFloat(CrossSectionalArea);
 1085      }
 1086      if (FinArea != 0F) {
 1087        output.WriteRawTag(29);
 1088        output.WriteFloat(FinArea);
 1089      }
 1090      if (BodyArea != 0F) {
 1091        output.WriteRawTag(37);
 1092        output.WriteFloat(BodyArea);
 1093      }
 1094      if (_unknownFields != null) {
 1095        _unknownFields.WriteTo(output);
 1096      }
 1097    #endif
 1098    }
 1099
 1100    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1101    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1102    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1103    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1104      if (Mass != 0F) {
 1105        output.WriteRawTag(13);
 1106        output.WriteFloat(Mass);
 1107      }
 1108      if (CrossSectionalArea != 0F) {
 1109        output.WriteRawTag(21);
 1110        output.WriteFloat(CrossSectionalArea);
 1111      }
 1112      if (FinArea != 0F) {
 1113        output.WriteRawTag(29);
 1114        output.WriteFloat(FinArea);
 1115      }
 1116      if (BodyArea != 0F) {
 1117        output.WriteRawTag(37);
 1118        output.WriteFloat(BodyArea);
 1119      }
 1120      if (_unknownFields != null) {
 1121        _unknownFields.WriteTo(ref output);
 1122      }
 1123    }
 1124    #endif
 1125
 1126    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1127    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1128    public int CalculateSize() {
 1129      int size = 0;
 1130      if (Mass != 0F) {
 1131        size += 1 + 4;
 1132      }
 1133      if (CrossSectionalArea != 0F) {
 1134        size += 1 + 4;
 1135      }
 1136      if (FinArea != 0F) {
 1137        size += 1 + 4;
 1138      }
 1139      if (BodyArea != 0F) {
 1140        size += 1 + 4;
 1141      }
 1142      if (_unknownFields != null) {
 1143        size += _unknownFields.CalculateSize();
 1144      }
 1145      return size;
 1146    }
 1147
 1148    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1149    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1150    public void MergeFrom(BodyConfig other) {
 1151      if (other == null) {
 1152        return;
 1153      }
 1154      if (other.Mass != 0F) {
 1155        Mass = other.Mass;
 1156      }
 1157      if (other.CrossSectionalArea != 0F) {
 1158        CrossSectionalArea = other.CrossSectionalArea;
 1159      }
 1160      if (other.FinArea != 0F) {
 1161        FinArea = other.FinArea;
 1162      }
 1163      if (other.BodyArea != 0F) {
 1164        BodyArea = other.BodyArea;
 1165      }
 1166      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1167    }
 1168
 1169    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1170    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1171    public void MergeFrom(pb::CodedInputStream input) {
 1172    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1173      input.ReadRawMessage(this);
 1174    #else
 1175      uint tag;
 1176      while ((tag = input.ReadTag()) != 0) {
 1177      if ((tag & 7) == 4) {
 1178        // Abort on any end group tag.
 1179        return;
 1180      }
 1181      switch(tag) {
 1182          default:
 1183            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1184            break;
 1185          case 13: {
 1186            Mass = input.ReadFloat();
 1187            break;
 1188          }
 1189          case 21: {
 1190            CrossSectionalArea = input.ReadFloat();
 1191            break;
 1192          }
 1193          case 29: {
 1194            FinArea = input.ReadFloat();
 1195            break;
 1196          }
 1197          case 37: {
 1198            BodyArea = input.ReadFloat();
 1199            break;
 1200          }
 1201        }
 1202      }
 1203    #endif
 1204    }
 1205
 1206    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1207    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1208    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1209    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1210      uint tag;
 1211      while ((tag = input.ReadTag()) != 0) {
 1212      if ((tag & 7) == 4) {
 1213        // Abort on any end group tag.
 1214        return;
 1215      }
 1216      switch(tag) {
 1217          default:
 1218            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1219            break;
 1220          case 13: {
 1221            Mass = input.ReadFloat();
 1222            break;
 1223          }
 1224          case 21: {
 1225            CrossSectionalArea = input.ReadFloat();
 1226            break;
 1227          }
 1228          case 29: {
 1229            FinArea = input.ReadFloat();
 1230            break;
 1231          }
 1232          case 37: {
 1233            BodyArea = input.ReadFloat();
 1234            break;
 1235          }
 1236        }
 1237      }
 1238    }
 1239    #endif
 1240
 1241  }
 1242
 1243  /// <summary>
 1244  /// Hit configuration.
 1245  /// </summary>
 1246  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1247  public sealed partial class HitConfig : pb::IMessage<HitConfig>
 1248  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1249      , pb::IBufferMessage
 1250  #endif
 1251  {
 1252    private static readonly pb::MessageParser<HitConfig> _parser = new pb::MessageParser<HitConfig>(() => new HitConfig(
 1253    private pb::UnknownFieldSet _unknownFields;
 1254    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1255    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1256    public static pb::MessageParser<HitConfig> Parser { get { return _parser; } }
 1257
 1258    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1259    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1260    public static pbr::MessageDescriptor Descriptor {
 1261      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[4]; }
 1262    }
 1263
 1264    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1265    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1266    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1267      get { return Descriptor; }
 1268    }
 1269
 1270    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1271    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1272    public HitConfig() {
 1273      OnConstruction();
 1274    }
 1275
 1276    partial void OnConstruction();
 1277
 1278    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1279    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1280    public HitConfig(HitConfig other) : this() {
 1281      hitRadius_ = other.hitRadius_;
 1282      killProbability_ = other.killProbability_;
 1283      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1284    }
 1285
 1286    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1287    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1288    public HitConfig Clone() {
 1289      return new HitConfig(this);
 1290    }
 1291
 1292    /// <summary>Field number for the "hit_radius" field.</summary>
 1293    public const int HitRadiusFieldNumber = 1;
 1294    private float hitRadius_;
 1295    /// <summary>
 1296    /// Hit radius in m.
 1297    /// </summary>
 1298    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1299    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1300    public float HitRadius {
 1301      get { return hitRadius_; }
 1302      set {
 1303        hitRadius_ = value;
 1304      }
 1305    }
 1306
 1307    /// <summary>Field number for the "kill_probability" field.</summary>
 1308    public const int KillProbabilityFieldNumber = 2;
 1309    private float killProbability_;
 1310    /// <summary>
 1311    /// Kill probability.
 1312    /// </summary>
 1313    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1314    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1315    public float KillProbability {
 1316      get { return killProbability_; }
 1317      set {
 1318        killProbability_ = value;
 1319      }
 1320    }
 1321
 1322    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1323    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1324    public override bool Equals(object other) {
 1325      return Equals(other as HitConfig);
 1326    }
 1327
 1328    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1329    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1330    public bool Equals(HitConfig other) {
 1331      if (ReferenceEquals(other, null)) {
 1332        return false;
 1333      }
 1334      if (ReferenceEquals(other, this)) {
 1335        return true;
 1336      }
 1337      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(HitRadius, other.HitRadius)) return false
 1338      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(KillProbability, other.KillProbability)) 
 1339      return Equals(_unknownFields, other._unknownFields);
 1340    }
 1341
 1342    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1343    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1344    public override int GetHashCode() {
 1345      int hash = 1;
 1346      if (HitRadius != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(HitRadius);
 1347      if (KillProbability != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(KillPr
 1348      if (_unknownFields != null) {
 1349        hash ^= _unknownFields.GetHashCode();
 1350      }
 1351      return hash;
 1352    }
 1353
 1354    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1355    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1356    public override string ToString() {
 1357      return pb::JsonFormatter.ToDiagnosticString(this);
 1358    }
 1359
 1360    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1361    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1362    public void WriteTo(pb::CodedOutputStream output) {
 1363    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1364      output.WriteRawMessage(this);
 1365    #else
 1366      if (HitRadius != 0F) {
 1367        output.WriteRawTag(13);
 1368        output.WriteFloat(HitRadius);
 1369      }
 1370      if (KillProbability != 0F) {
 1371        output.WriteRawTag(21);
 1372        output.WriteFloat(KillProbability);
 1373      }
 1374      if (_unknownFields != null) {
 1375        _unknownFields.WriteTo(output);
 1376      }
 1377    #endif
 1378    }
 1379
 1380    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1381    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1382    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1383    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1384      if (HitRadius != 0F) {
 1385        output.WriteRawTag(13);
 1386        output.WriteFloat(HitRadius);
 1387      }
 1388      if (KillProbability != 0F) {
 1389        output.WriteRawTag(21);
 1390        output.WriteFloat(KillProbability);
 1391      }
 1392      if (_unknownFields != null) {
 1393        _unknownFields.WriteTo(ref output);
 1394      }
 1395    }
 1396    #endif
 1397
 1398    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1399    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1400    public int CalculateSize() {
 1401      int size = 0;
 1402      if (HitRadius != 0F) {
 1403        size += 1 + 4;
 1404      }
 1405      if (KillProbability != 0F) {
 1406        size += 1 + 4;
 1407      }
 1408      if (_unknownFields != null) {
 1409        size += _unknownFields.CalculateSize();
 1410      }
 1411      return size;
 1412    }
 1413
 1414    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1415    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1416    public void MergeFrom(HitConfig other) {
 1417      if (other == null) {
 1418        return;
 1419      }
 1420      if (other.HitRadius != 0F) {
 1421        HitRadius = other.HitRadius;
 1422      }
 1423      if (other.KillProbability != 0F) {
 1424        KillProbability = other.KillProbability;
 1425      }
 1426      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1427    }
 1428
 1429    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1430    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1431    public void MergeFrom(pb::CodedInputStream input) {
 1432    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1433      input.ReadRawMessage(this);
 1434    #else
 1435      uint tag;
 1436      while ((tag = input.ReadTag()) != 0) {
 1437      if ((tag & 7) == 4) {
 1438        // Abort on any end group tag.
 1439        return;
 1440      }
 1441      switch(tag) {
 1442          default:
 1443            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1444            break;
 1445          case 13: {
 1446            HitRadius = input.ReadFloat();
 1447            break;
 1448          }
 1449          case 21: {
 1450            KillProbability = input.ReadFloat();
 1451            break;
 1452          }
 1453        }
 1454      }
 1455    #endif
 1456    }
 1457
 1458    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1459    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1460    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1461    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1462      uint tag;
 1463      while ((tag = input.ReadTag()) != 0) {
 1464      if ((tag & 7) == 4) {
 1465        // Abort on any end group tag.
 1466        return;
 1467      }
 1468      switch(tag) {
 1469          default:
 1470            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1471            break;
 1472          case 13: {
 1473            HitRadius = input.ReadFloat();
 1474            break;
 1475          }
 1476          case 21: {
 1477            KillProbability = input.ReadFloat();
 1478            break;
 1479          }
 1480        }
 1481      }
 1482    }
 1483    #endif
 1484
 1485  }
 1486
 1487  /// <summary>
 1488  /// Controller configuration.
 1489  /// </summary>
 1490  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1491  public sealed partial class ControllerConfig : pb::IMessage<ControllerConfig>
 1492  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1493      , pb::IBufferMessage
 1494  #endif
 1495  {
 1496    private static readonly pb::MessageParser<ControllerConfig> _parser = new pb::MessageParser<ControllerConfig>(() => 
 1497    private pb::UnknownFieldSet _unknownFields;
 1498    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1499    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1500    public static pb::MessageParser<ControllerConfig> Parser { get { return _parser; } }
 1501
 1502    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1503    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1504    public static pbr::MessageDescriptor Descriptor {
 1505      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[5]; }
 1506    }
 1507
 1508    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1509    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1510    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1511      get { return Descriptor; }
 1512    }
 1513
 1514    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1515    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1516    public ControllerConfig() {
 1517      OnConstruction();
 1518    }
 1519
 1520    partial void OnConstruction();
 1521
 1522    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1523    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1524    public ControllerConfig(ControllerConfig other) : this() {
 1525      proportionalNavigationRangeThreshold_ = other.proportionalNavigationRangeThreshold_;
 1526      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1527    }
 1528
 1529    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1530    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1531    public ControllerConfig Clone() {
 1532      return new ControllerConfig(this);
 1533    }
 1534
 1535    /// <summary>Field number for the "proportional_navigation_range_threshold" field.</summary>
 1536    public const int ProportionalNavigationRangeThresholdFieldNumber = 1;
 1537    private float proportionalNavigationRangeThreshold_;
 1538    /// <summary>
 1539    /// Proportional navigation range threshold in m.
 1540    /// </summary>
 1541    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1542    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1543    public float ProportionalNavigationRangeThreshold {
 1544      get { return proportionalNavigationRangeThreshold_; }
 1545      set {
 1546        proportionalNavigationRangeThreshold_ = value;
 1547      }
 1548    }
 1549
 1550    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1551    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1552    public override bool Equals(object other) {
 1553      return Equals(other as ControllerConfig);
 1554    }
 1555
 1556    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1557    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1558    public bool Equals(ControllerConfig other) {
 1559      if (ReferenceEquals(other, null)) {
 1560        return false;
 1561      }
 1562      if (ReferenceEquals(other, this)) {
 1563        return true;
 1564      }
 1565      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ProportionalNavigationRangeThreshold, oth
 1566      return Equals(_unknownFields, other._unknownFields);
 1567    }
 1568
 1569    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1570    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1571    public override int GetHashCode() {
 1572      int hash = 1;
 1573      if (ProportionalNavigationRangeThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityCompar
 1574      if (_unknownFields != null) {
 1575        hash ^= _unknownFields.GetHashCode();
 1576      }
 1577      return hash;
 1578    }
 1579
 1580    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1581    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1582    public override string ToString() {
 1583      return pb::JsonFormatter.ToDiagnosticString(this);
 1584    }
 1585
 1586    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1587    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1588    public void WriteTo(pb::CodedOutputStream output) {
 1589    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1590      output.WriteRawMessage(this);
 1591    #else
 1592      if (ProportionalNavigationRangeThreshold != 0F) {
 1593        output.WriteRawTag(13);
 1594        output.WriteFloat(ProportionalNavigationRangeThreshold);
 1595      }
 1596      if (_unknownFields != null) {
 1597        _unknownFields.WriteTo(output);
 1598      }
 1599    #endif
 1600    }
 1601
 1602    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1603    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1604    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1605    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 1606      if (ProportionalNavigationRangeThreshold != 0F) {
 1607        output.WriteRawTag(13);
 1608        output.WriteFloat(ProportionalNavigationRangeThreshold);
 1609      }
 1610      if (_unknownFields != null) {
 1611        _unknownFields.WriteTo(ref output);
 1612      }
 1613    }
 1614    #endif
 1615
 1616    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1617    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1618    public int CalculateSize() {
 1619      int size = 0;
 1620      if (ProportionalNavigationRangeThreshold != 0F) {
 1621        size += 1 + 4;
 1622      }
 1623      if (_unknownFields != null) {
 1624        size += _unknownFields.CalculateSize();
 1625      }
 1626      return size;
 1627    }
 1628
 1629    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1630    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1631    public void MergeFrom(ControllerConfig other) {
 1632      if (other == null) {
 1633        return;
 1634      }
 1635      if (other.ProportionalNavigationRangeThreshold != 0F) {
 1636        ProportionalNavigationRangeThreshold = other.ProportionalNavigationRangeThreshold;
 1637      }
 1638      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 1639    }
 1640
 1641    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1642    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1643    public void MergeFrom(pb::CodedInputStream input) {
 1644    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1645      input.ReadRawMessage(this);
 1646    #else
 1647      uint tag;
 1648      while ((tag = input.ReadTag()) != 0) {
 1649      if ((tag & 7) == 4) {
 1650        // Abort on any end group tag.
 1651        return;
 1652      }
 1653      switch(tag) {
 1654          default:
 1655            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1656            break;
 1657          case 13: {
 1658            ProportionalNavigationRangeThreshold = input.ReadFloat();
 1659            break;
 1660          }
 1661        }
 1662      }
 1663    #endif
 1664    }
 1665
 1666    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1667    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1668    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1669    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1670      uint tag;
 1671      while ((tag = input.ReadTag()) != 0) {
 1672      if ((tag & 7) == 4) {
 1673        // Abort on any end group tag.
 1674        return;
 1675      }
 1676      switch(tag) {
 1677          default:
 1678            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 1679            break;
 1680          case 13: {
 1681            ProportionalNavigationRangeThreshold = input.ReadFloat();
 1682            break;
 1683          }
 1684        }
 1685      }
 1686    }
 1687    #endif
 1688
 1689  }
 1690
 1691  /// <summary>
 1692  /// Power table entry.
 1693  /// </summary>
 1694  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1695  public sealed partial class PowerTableEntry : pb::IMessage<PowerTableEntry>
 1696  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1697      , pb::IBufferMessage
 1698  #endif
 1699  {
 761700    private static readonly pb::MessageParser<PowerTableEntry> _parser = new pb::MessageParser<PowerTableEntry>(() => ne
 1701    private pb::UnknownFieldSet _unknownFields;
 1702    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1703    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 31704    public static pb::MessageParser<PowerTableEntry> Parser { get { return _parser; } }
 1705
 1706    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1707    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1708    public static pbr::MessageDescriptor Descriptor {
 01709      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[6]; }
 1710    }
 1711
 1712    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1713    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1714    pbr::MessageDescriptor pb::IMessage.Descriptor {
 01715      get { return Descriptor; }
 1716    }
 1717
 1718    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1719    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1501720    public PowerTableEntry() {
 1721      OnConstruction();
 751722    }
 1723
 1724    partial void OnConstruction();
 1725
 1726    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1727    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01728    public PowerTableEntry(PowerTableEntry other) : this() {
 01729      power_ = other.power_;
 01730      speed_ = other.speed_;
 01731      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 01732    }
 1733
 1734    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1735    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01736    public PowerTableEntry Clone() {
 01737      return new PowerTableEntry(this);
 01738    }
 1739
 1740    /// <summary>Field number for the "power" field.</summary>
 1741    public const int PowerFieldNumber = 1;
 751742    private global::Configs.Power power_ = global::Configs.Power.Idle;
 1743    /// <summary>
 1744    /// Power.
 1745    /// </summary>
 1746    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1747    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1748    public global::Configs.Power Power {
 301749      get { return power_; }
 601750      set {
 601751        power_ = value;
 601752      }
 1753    }
 1754
 1755    /// <summary>Field number for the "speed" field.</summary>
 1756    public const int SpeedFieldNumber = 2;
 1757    private float speed_;
 1758    /// <summary>
 1759    /// Speed in m/s.
 1760    /// </summary>
 1761    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1762    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1763    public float Speed {
 121764      get { return speed_; }
 601765      set {
 601766        speed_ = value;
 601767      }
 1768    }
 1769
 1770    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1771    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01772    public override bool Equals(object other) {
 01773      return Equals(other as PowerTableEntry);
 01774    }
 1775
 1776    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1777    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01778    public bool Equals(PowerTableEntry other) {
 01779      if (ReferenceEquals(other, null)) {
 01780        return false;
 1781      }
 01782      if (ReferenceEquals(other, this)) {
 01783        return true;
 1784      }
 01785      if (Power != other.Power) return false;
 01786      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Speed, other.Speed)) return false;
 01787      return Equals(_unknownFields, other._unknownFields);
 01788    }
 1789
 1790    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1791    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01792    public override int GetHashCode() {
 01793      int hash = 1;
 01794      if (Power != global::Configs.Power.Idle) hash ^= Power.GetHashCode();
 01795      if (Speed != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Speed);
 01796      if (_unknownFields != null) {
 01797        hash ^= _unknownFields.GetHashCode();
 01798      }
 01799      return hash;
 01800    }
 1801
 1802    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1803    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01804    public override string ToString() {
 01805      return pb::JsonFormatter.ToDiagnosticString(this);
 01806    }
 1807
 1808    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1809    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01810    public void WriteTo(pb::CodedOutputStream output) {
 1811    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 01812      output.WriteRawMessage(this);
 1813    #else
 1814      if (Power != global::Configs.Power.Idle) {
 1815        output.WriteRawTag(8);
 1816        output.WriteEnum((int) Power);
 1817      }
 1818      if (Speed != 0F) {
 1819        output.WriteRawTag(21);
 1820        output.WriteFloat(Speed);
 1821      }
 1822      if (_unknownFields != null) {
 1823        _unknownFields.WriteTo(output);
 1824      }
 1825    #endif
 01826    }
 1827
 1828    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1829    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1830    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01831    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 01832      if (Power != global::Configs.Power.Idle) {
 01833        output.WriteRawTag(8);
 01834        output.WriteEnum((int) Power);
 01835      }
 01836      if (Speed != 0F) {
 01837        output.WriteRawTag(21);
 01838        output.WriteFloat(Speed);
 01839      }
 01840      if (_unknownFields != null) {
 01841        _unknownFields.WriteTo(ref output);
 01842      }
 01843    }
 1844    #endif
 1845
 1846    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1847    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01848    public int CalculateSize() {
 01849      int size = 0;
 01850      if (Power != global::Configs.Power.Idle) {
 01851        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Power);
 01852      }
 01853      if (Speed != 0F) {
 01854        size += 1 + 4;
 01855      }
 01856      if (_unknownFields != null) {
 01857        size += _unknownFields.CalculateSize();
 01858      }
 01859      return size;
 01860    }
 1861
 1862    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1863    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01864    public void MergeFrom(PowerTableEntry other) {
 01865      if (other == null) {
 01866        return;
 1867      }
 01868      if (other.Power != global::Configs.Power.Idle) {
 01869        Power = other.Power;
 01870      }
 01871      if (other.Speed != 0F) {
 01872        Speed = other.Speed;
 01873      }
 01874      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 01875    }
 1876
 1877    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1878    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 01879    public void MergeFrom(pb::CodedInputStream input) {
 1880    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 01881      input.ReadRawMessage(this);
 1882    #else
 1883      uint tag;
 1884      while ((tag = input.ReadTag()) != 0) {
 1885      if ((tag & 7) == 4) {
 1886        // Abort on any end group tag.
 1887        return;
 1888      }
 1889      switch(tag) {
 1890          default:
 1891            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 1892            break;
 1893          case 8: {
 1894            Power = (global::Configs.Power) input.ReadEnum();
 1895            break;
 1896          }
 1897          case 21: {
 1898            Speed = input.ReadFloat();
 1899            break;
 1900          }
 1901        }
 1902      }
 1903    #endif
 01904    }
 1905
 1906    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1907    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1908    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 751909    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 1910      uint tag;
 3151911      while ((tag = input.ReadTag()) != 0) {
 1201912      if ((tag & 7) == 4) {
 1913        // Abort on any end group tag.
 01914        return;
 1915      }
 1201916      switch(tag) {
 1917          default:
 01918            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 01919            break;
 601920          case 8: {
 601921            Power = (global::Configs.Power) input.ReadEnum();
 601922            break;
 1923          }
 601924          case 21: {
 601925            Speed = input.ReadFloat();
 601926            break;
 1927          }
 1928        }
 1201929      }
 751930    }
 1931    #endif
 1932
 1933  }
 1934
 1935  /// <summary>
 1936  /// Visualization configuration.
 1937  /// </summary>
 1938  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 1939  public sealed partial class VisualizationConfig : pb::IMessage<VisualizationConfig>
 1940  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 1941      , pb::IBufferMessage
 1942  #endif
 1943  {
 1944    private static readonly pb::MessageParser<VisualizationConfig> _parser = new pb::MessageParser<VisualizationConfig>(
 1945    private pb::UnknownFieldSet _unknownFields;
 1946    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1947    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1948    public static pb::MessageParser<VisualizationConfig> Parser { get { return _parser; } }
 1949
 1950    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1951    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1952    public static pbr::MessageDescriptor Descriptor {
 1953      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[7]; }
 1954    }
 1955
 1956    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1957    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1958    pbr::MessageDescriptor pb::IMessage.Descriptor {
 1959      get { return Descriptor; }
 1960    }
 1961
 1962    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1963    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1964    public VisualizationConfig() {
 1965      OnConstruction();
 1966    }
 1967
 1968    partial void OnConstruction();
 1969
 1970    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1971    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1972    public VisualizationConfig(VisualizationConfig other) : this() {
 1973      symbolPresent_ = other.symbolPresent_;
 1974      symbolDestroyed_ = other.symbolDestroyed_;
 1975      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 1976    }
 1977
 1978    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1979    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1980    public VisualizationConfig Clone() {
 1981      return new VisualizationConfig(this);
 1982    }
 1983
 1984    /// <summary>Field number for the "symbol_present" field.</summary>
 1985    public const int SymbolPresentFieldNumber = 1;
 1986    private string symbolPresent_ = "";
 1987    /// <summary>
 1988    /// Symbol when present.
 1989    /// </summary>
 1990    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 1991    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 1992    public string SymbolPresent {
 1993      get { return symbolPresent_; }
 1994      set {
 1995        symbolPresent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 1996      }
 1997    }
 1998
 1999    /// <summary>Field number for the "symbol_destroyed" field.</summary>
 2000    public const int SymbolDestroyedFieldNumber = 2;
 2001    private string symbolDestroyed_ = "";
 2002    /// <summary>
 2003    /// Symbol when destroyed.
 2004    /// </summary>
 2005    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2006    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2007    public string SymbolDestroyed {
 2008      get { return symbolDestroyed_; }
 2009      set {
 2010        symbolDestroyed_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 2011      }
 2012    }
 2013
 2014    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2015    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2016    public override bool Equals(object other) {
 2017      return Equals(other as VisualizationConfig);
 2018    }
 2019
 2020    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2021    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2022    public bool Equals(VisualizationConfig other) {
 2023      if (ReferenceEquals(other, null)) {
 2024        return false;
 2025      }
 2026      if (ReferenceEquals(other, this)) {
 2027        return true;
 2028      }
 2029      if (SymbolPresent != other.SymbolPresent) return false;
 2030      if (SymbolDestroyed != other.SymbolDestroyed) return false;
 2031      return Equals(_unknownFields, other._unknownFields);
 2032    }
 2033
 2034    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2035    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2036    public override int GetHashCode() {
 2037      int hash = 1;
 2038      if (SymbolPresent.Length != 0) hash ^= SymbolPresent.GetHashCode();
 2039      if (SymbolDestroyed.Length != 0) hash ^= SymbolDestroyed.GetHashCode();
 2040      if (_unknownFields != null) {
 2041        hash ^= _unknownFields.GetHashCode();
 2042      }
 2043      return hash;
 2044    }
 2045
 2046    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2047    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2048    public override string ToString() {
 2049      return pb::JsonFormatter.ToDiagnosticString(this);
 2050    }
 2051
 2052    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2053    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2054    public void WriteTo(pb::CodedOutputStream output) {
 2055    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2056      output.WriteRawMessage(this);
 2057    #else
 2058      if (SymbolPresent.Length != 0) {
 2059        output.WriteRawTag(10);
 2060        output.WriteString(SymbolPresent);
 2061      }
 2062      if (SymbolDestroyed.Length != 0) {
 2063        output.WriteRawTag(18);
 2064        output.WriteString(SymbolDestroyed);
 2065      }
 2066      if (_unknownFields != null) {
 2067        _unknownFields.WriteTo(output);
 2068      }
 2069    #endif
 2070    }
 2071
 2072    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2073    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2074    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2075    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 2076      if (SymbolPresent.Length != 0) {
 2077        output.WriteRawTag(10);
 2078        output.WriteString(SymbolPresent);
 2079      }
 2080      if (SymbolDestroyed.Length != 0) {
 2081        output.WriteRawTag(18);
 2082        output.WriteString(SymbolDestroyed);
 2083      }
 2084      if (_unknownFields != null) {
 2085        _unknownFields.WriteTo(ref output);
 2086      }
 2087    }
 2088    #endif
 2089
 2090    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2091    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2092    public int CalculateSize() {
 2093      int size = 0;
 2094      if (SymbolPresent.Length != 0) {
 2095        size += 1 + pb::CodedOutputStream.ComputeStringSize(SymbolPresent);
 2096      }
 2097      if (SymbolDestroyed.Length != 0) {
 2098        size += 1 + pb::CodedOutputStream.ComputeStringSize(SymbolDestroyed);
 2099      }
 2100      if (_unknownFields != null) {
 2101        size += _unknownFields.CalculateSize();
 2102      }
 2103      return size;
 2104    }
 2105
 2106    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2107    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2108    public void MergeFrom(VisualizationConfig other) {
 2109      if (other == null) {
 2110        return;
 2111      }
 2112      if (other.SymbolPresent.Length != 0) {
 2113        SymbolPresent = other.SymbolPresent;
 2114      }
 2115      if (other.SymbolDestroyed.Length != 0) {
 2116        SymbolDestroyed = other.SymbolDestroyed;
 2117      }
 2118      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 2119    }
 2120
 2121    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2122    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2123    public void MergeFrom(pb::CodedInputStream input) {
 2124    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2125      input.ReadRawMessage(this);
 2126    #else
 2127      uint tag;
 2128      while ((tag = input.ReadTag()) != 0) {
 2129      if ((tag & 7) == 4) {
 2130        // Abort on any end group tag.
 2131        return;
 2132      }
 2133      switch(tag) {
 2134          default:
 2135            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 2136            break;
 2137          case 10: {
 2138            SymbolPresent = input.ReadString();
 2139            break;
 2140          }
 2141          case 18: {
 2142            SymbolDestroyed = input.ReadString();
 2143            break;
 2144          }
 2145        }
 2146      }
 2147    #endif
 2148    }
 2149
 2150    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2151    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2152    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2153    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 2154      uint tag;
 2155      while ((tag = input.ReadTag()) != 0) {
 2156      if ((tag & 7) == 4) {
 2157        // Abort on any end group tag.
 2158        return;
 2159      }
 2160      switch(tag) {
 2161          default:
 2162            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 2163            break;
 2164          case 10: {
 2165            SymbolPresent = input.ReadString();
 2166            break;
 2167          }
 2168          case 18: {
 2169            SymbolDestroyed = input.ReadString();
 2170            break;
 2171          }
 2172        }
 2173      }
 2174    }
 2175    #endif
 2176
 2177  }
 2178
 2179  /// <summary>
 2180  /// Static configuration.
 2181  /// </summary>
 2182  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
 2183  public sealed partial class StaticConfig : pb::IMessage<StaticConfig>
 2184  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2185      , pb::IBufferMessage
 2186  #endif
 2187  {
 2188    private static readonly pb::MessageParser<StaticConfig> _parser = new pb::MessageParser<StaticConfig>(() => new Stat
 2189    private pb::UnknownFieldSet _unknownFields;
 2190    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2191    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2192    public static pb::MessageParser<StaticConfig> Parser { get { return _parser; } }
 2193
 2194    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2195    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2196    public static pbr::MessageDescriptor Descriptor {
 2197      get { return global::Configs.StaticConfigReflection.Descriptor.MessageTypes[8]; }
 2198    }
 2199
 2200    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2201    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2202    pbr::MessageDescriptor pb::IMessage.Descriptor {
 2203      get { return Descriptor; }
 2204    }
 2205
 2206    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2207    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2208    public StaticConfig() {
 2209      OnConstruction();
 2210    }
 2211
 2212    partial void OnConstruction();
 2213
 2214    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2215    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2216    public StaticConfig(StaticConfig other) : this() {
 2217      name_ = other.name_;
 2218      agentType_ = other.agentType_;
 2219      cost_ = other.cost_;
 2220      accelerationConfig_ = other.accelerationConfig_ != null ? other.accelerationConfig_.Clone() : null;
 2221      boostConfig_ = other.boostConfig_ != null ? other.boostConfig_.Clone() : null;
 2222      liftDragConfig_ = other.liftDragConfig_ != null ? other.liftDragConfig_.Clone() : null;
 2223      bodyConfig_ = other.bodyConfig_ != null ? other.bodyConfig_.Clone() : null;
 2224      hitConfig_ = other.hitConfig_ != null ? other.hitConfig_.Clone() : null;
 2225      controllerConfig_ = other.controllerConfig_ != null ? other.controllerConfig_.Clone() : null;
 2226      powerTable_ = other.powerTable_.Clone();
 2227      visualizationConfig_ = other.visualizationConfig_ != null ? other.visualizationConfig_.Clone() : null;
 2228      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 2229    }
 2230
 2231    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2232    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2233    public StaticConfig Clone() {
 2234      return new StaticConfig(this);
 2235    }
 2236
 2237    /// <summary>Field number for the "name" field.</summary>
 2238    public const int NameFieldNumber = 1;
 2239    private string name_ = "";
 2240    /// <summary>
 2241    /// Agent name.
 2242    /// </summary>
 2243    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2244    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2245    public string Name {
 2246      get { return name_; }
 2247      set {
 2248        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
 2249      }
 2250    }
 2251
 2252    /// <summary>Field number for the "agent_type" field.</summary>
 2253    public const int AgentTypeFieldNumber = 2;
 2254    private global::Configs.AgentType agentType_ = global::Configs.AgentType.InvalidType;
 2255    /// <summary>
 2256    /// Agent type. The agent type determines the class to be instantiated.
 2257    /// </summary>
 2258    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2259    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2260    public global::Configs.AgentType AgentType {
 2261      get { return agentType_; }
 2262      set {
 2263        agentType_ = value;
 2264      }
 2265    }
 2266
 2267    /// <summary>Field number for the "cost" field.</summary>
 2268    public const int CostFieldNumber = 3;
 2269    private float cost_;
 2270    /// <summary>
 2271    /// Unit cost.
 2272    /// </summary>
 2273    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2274    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2275    public float Cost {
 2276      get { return cost_; }
 2277      set {
 2278        cost_ = value;
 2279      }
 2280    }
 2281
 2282    /// <summary>Field number for the "acceleration_config" field.</summary>
 2283    public const int AccelerationConfigFieldNumber = 4;
 2284    private global::Configs.AccelerationConfig accelerationConfig_;
 2285    /// <summary>
 2286    /// Acceleration configuration.
 2287    /// </summary>
 2288    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2289    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2290    public global::Configs.AccelerationConfig AccelerationConfig {
 2291      get { return accelerationConfig_; }
 2292      set {
 2293        accelerationConfig_ = value;
 2294      }
 2295    }
 2296
 2297    /// <summary>Field number for the "boost_config" field.</summary>
 2298    public const int BoostConfigFieldNumber = 5;
 2299    private global::Configs.BoostConfig boostConfig_;
 2300    /// <summary>
 2301    /// Boost configuration.
 2302    /// </summary>
 2303    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2304    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2305    public global::Configs.BoostConfig BoostConfig {
 2306      get { return boostConfig_; }
 2307      set {
 2308        boostConfig_ = value;
 2309      }
 2310    }
 2311
 2312    /// <summary>Field number for the "lift_drag_config" field.</summary>
 2313    public const int LiftDragConfigFieldNumber = 6;
 2314    private global::Configs.LiftDragConfig liftDragConfig_;
 2315    /// <summary>
 2316    /// Lift and drag configuration.
 2317    /// </summary>
 2318    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2319    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2320    public global::Configs.LiftDragConfig LiftDragConfig {
 2321      get { return liftDragConfig_; }
 2322      set {
 2323        liftDragConfig_ = value;
 2324      }
 2325    }
 2326
 2327    /// <summary>Field number for the "body_config" field.</summary>
 2328    public const int BodyConfigFieldNumber = 7;
 2329    private global::Configs.BodyConfig bodyConfig_;
 2330    /// <summary>
 2331    /// Body configuration.
 2332    /// </summary>
 2333    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2334    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2335    public global::Configs.BodyConfig BodyConfig {
 2336      get { return bodyConfig_; }
 2337      set {
 2338        bodyConfig_ = value;
 2339      }
 2340    }
 2341
 2342    /// <summary>Field number for the "hit_config" field.</summary>
 2343    public const int HitConfigFieldNumber = 8;
 2344    private global::Configs.HitConfig hitConfig_;
 2345    /// <summary>
 2346    /// Hit configuration.
 2347    /// </summary>
 2348    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2349    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2350    public global::Configs.HitConfig HitConfig {
 2351      get { return hitConfig_; }
 2352      set {
 2353        hitConfig_ = value;
 2354      }
 2355    }
 2356
 2357    /// <summary>Field number for the "controller_config" field.</summary>
 2358    public const int ControllerConfigFieldNumber = 9;
 2359    private global::Configs.ControllerConfig controllerConfig_;
 2360    /// <summary>
 2361    /// Controller configuration.
 2362    /// </summary>
 2363    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2364    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2365    public global::Configs.ControllerConfig ControllerConfig {
 2366      get { return controllerConfig_; }
 2367      set {
 2368        controllerConfig_ = value;
 2369      }
 2370    }
 2371
 2372    /// <summary>Field number for the "power_table" field.</summary>
 2373    public const int PowerTableFieldNumber = 10;
 2374    private static readonly pb::FieldCodec<global::Configs.PowerTableEntry> _repeated_powerTable_codec
 2375        = pb::FieldCodec.ForMessage(82, global::Configs.PowerTableEntry.Parser);
 2376    private readonly pbc::RepeatedField<global::Configs.PowerTableEntry> powerTable_ = new pbc::RepeatedField<global::Co
 2377    /// <summary>
 2378    /// Power table.
 2379    /// </summary>
 2380    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2381    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2382    public pbc::RepeatedField<global::Configs.PowerTableEntry> PowerTable {
 2383      get { return powerTable_; }
 2384    }
 2385
 2386    /// <summary>Field number for the "visualization_config" field.</summary>
 2387    public const int VisualizationConfigFieldNumber = 11;
 2388    private global::Configs.VisualizationConfig visualizationConfig_;
 2389    /// <summary>
 2390    /// Visualization configuration.
 2391    /// </summary>
 2392    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2393    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2394    public global::Configs.VisualizationConfig VisualizationConfig {
 2395      get { return visualizationConfig_; }
 2396      set {
 2397        visualizationConfig_ = value;
 2398      }
 2399    }
 2400
 2401    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2402    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2403    public override bool Equals(object other) {
 2404      return Equals(other as StaticConfig);
 2405    }
 2406
 2407    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2408    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2409    public bool Equals(StaticConfig other) {
 2410      if (ReferenceEquals(other, null)) {
 2411        return false;
 2412      }
 2413      if (ReferenceEquals(other, this)) {
 2414        return true;
 2415      }
 2416      if (Name != other.Name) return false;
 2417      if (AgentType != other.AgentType) return false;
 2418      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Cost, other.Cost)) return false;
 2419      if (!object.Equals(AccelerationConfig, other.AccelerationConfig)) return false;
 2420      if (!object.Equals(BoostConfig, other.BoostConfig)) return false;
 2421      if (!object.Equals(LiftDragConfig, other.LiftDragConfig)) return false;
 2422      if (!object.Equals(BodyConfig, other.BodyConfig)) return false;
 2423      if (!object.Equals(HitConfig, other.HitConfig)) return false;
 2424      if (!object.Equals(ControllerConfig, other.ControllerConfig)) return false;
 2425      if(!powerTable_.Equals(other.powerTable_)) return false;
 2426      if (!object.Equals(VisualizationConfig, other.VisualizationConfig)) return false;
 2427      return Equals(_unknownFields, other._unknownFields);
 2428    }
 2429
 2430    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2431    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2432    public override int GetHashCode() {
 2433      int hash = 1;
 2434      if (Name.Length != 0) hash ^= Name.GetHashCode();
 2435      if (AgentType != global::Configs.AgentType.InvalidType) hash ^= AgentType.GetHashCode();
 2436      if (Cost != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Cost);
 2437      if (accelerationConfig_ != null) hash ^= AccelerationConfig.GetHashCode();
 2438      if (boostConfig_ != null) hash ^= BoostConfig.GetHashCode();
 2439      if (liftDragConfig_ != null) hash ^= LiftDragConfig.GetHashCode();
 2440      if (bodyConfig_ != null) hash ^= BodyConfig.GetHashCode();
 2441      if (hitConfig_ != null) hash ^= HitConfig.GetHashCode();
 2442      if (controllerConfig_ != null) hash ^= ControllerConfig.GetHashCode();
 2443      hash ^= powerTable_.GetHashCode();
 2444      if (visualizationConfig_ != null) hash ^= VisualizationConfig.GetHashCode();
 2445      if (_unknownFields != null) {
 2446        hash ^= _unknownFields.GetHashCode();
 2447      }
 2448      return hash;
 2449    }
 2450
 2451    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2452    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2453    public override string ToString() {
 2454      return pb::JsonFormatter.ToDiagnosticString(this);
 2455    }
 2456
 2457    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2458    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2459    public void WriteTo(pb::CodedOutputStream output) {
 2460    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2461      output.WriteRawMessage(this);
 2462    #else
 2463      if (Name.Length != 0) {
 2464        output.WriteRawTag(10);
 2465        output.WriteString(Name);
 2466      }
 2467      if (AgentType != global::Configs.AgentType.InvalidType) {
 2468        output.WriteRawTag(16);
 2469        output.WriteEnum((int) AgentType);
 2470      }
 2471      if (Cost != 0F) {
 2472        output.WriteRawTag(29);
 2473        output.WriteFloat(Cost);
 2474      }
 2475      if (accelerationConfig_ != null) {
 2476        output.WriteRawTag(34);
 2477        output.WriteMessage(AccelerationConfig);
 2478      }
 2479      if (boostConfig_ != null) {
 2480        output.WriteRawTag(42);
 2481        output.WriteMessage(BoostConfig);
 2482      }
 2483      if (liftDragConfig_ != null) {
 2484        output.WriteRawTag(50);
 2485        output.WriteMessage(LiftDragConfig);
 2486      }
 2487      if (bodyConfig_ != null) {
 2488        output.WriteRawTag(58);
 2489        output.WriteMessage(BodyConfig);
 2490      }
 2491      if (hitConfig_ != null) {
 2492        output.WriteRawTag(66);
 2493        output.WriteMessage(HitConfig);
 2494      }
 2495      if (controllerConfig_ != null) {
 2496        output.WriteRawTag(74);
 2497        output.WriteMessage(ControllerConfig);
 2498      }
 2499      powerTable_.WriteTo(output, _repeated_powerTable_codec);
 2500      if (visualizationConfig_ != null) {
 2501        output.WriteRawTag(90);
 2502        output.WriteMessage(VisualizationConfig);
 2503      }
 2504      if (_unknownFields != null) {
 2505        _unknownFields.WriteTo(output);
 2506      }
 2507    #endif
 2508    }
 2509
 2510    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2511    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2512    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2513    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 2514      if (Name.Length != 0) {
 2515        output.WriteRawTag(10);
 2516        output.WriteString(Name);
 2517      }
 2518      if (AgentType != global::Configs.AgentType.InvalidType) {
 2519        output.WriteRawTag(16);
 2520        output.WriteEnum((int) AgentType);
 2521      }
 2522      if (Cost != 0F) {
 2523        output.WriteRawTag(29);
 2524        output.WriteFloat(Cost);
 2525      }
 2526      if (accelerationConfig_ != null) {
 2527        output.WriteRawTag(34);
 2528        output.WriteMessage(AccelerationConfig);
 2529      }
 2530      if (boostConfig_ != null) {
 2531        output.WriteRawTag(42);
 2532        output.WriteMessage(BoostConfig);
 2533      }
 2534      if (liftDragConfig_ != null) {
 2535        output.WriteRawTag(50);
 2536        output.WriteMessage(LiftDragConfig);
 2537      }
 2538      if (bodyConfig_ != null) {
 2539        output.WriteRawTag(58);
 2540        output.WriteMessage(BodyConfig);
 2541      }
 2542      if (hitConfig_ != null) {
 2543        output.WriteRawTag(66);
 2544        output.WriteMessage(HitConfig);
 2545      }
 2546      if (controllerConfig_ != null) {
 2547        output.WriteRawTag(74);
 2548        output.WriteMessage(ControllerConfig);
 2549      }
 2550      powerTable_.WriteTo(ref output, _repeated_powerTable_codec);
 2551      if (visualizationConfig_ != null) {
 2552        output.WriteRawTag(90);
 2553        output.WriteMessage(VisualizationConfig);
 2554      }
 2555      if (_unknownFields != null) {
 2556        _unknownFields.WriteTo(ref output);
 2557      }
 2558    }
 2559    #endif
 2560
 2561    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2562    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2563    public int CalculateSize() {
 2564      int size = 0;
 2565      if (Name.Length != 0) {
 2566        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
 2567      }
 2568      if (AgentType != global::Configs.AgentType.InvalidType) {
 2569        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AgentType);
 2570      }
 2571      if (Cost != 0F) {
 2572        size += 1 + 4;
 2573      }
 2574      if (accelerationConfig_ != null) {
 2575        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AccelerationConfig);
 2576      }
 2577      if (boostConfig_ != null) {
 2578        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoostConfig);
 2579      }
 2580      if (liftDragConfig_ != null) {
 2581        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LiftDragConfig);
 2582      }
 2583      if (bodyConfig_ != null) {
 2584        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BodyConfig);
 2585      }
 2586      if (hitConfig_ != null) {
 2587        size += 1 + pb::CodedOutputStream.ComputeMessageSize(HitConfig);
 2588      }
 2589      if (controllerConfig_ != null) {
 2590        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ControllerConfig);
 2591      }
 2592      size += powerTable_.CalculateSize(_repeated_powerTable_codec);
 2593      if (visualizationConfig_ != null) {
 2594        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VisualizationConfig);
 2595      }
 2596      if (_unknownFields != null) {
 2597        size += _unknownFields.CalculateSize();
 2598      }
 2599      return size;
 2600    }
 2601
 2602    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2603    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2604    public void MergeFrom(StaticConfig other) {
 2605      if (other == null) {
 2606        return;
 2607      }
 2608      if (other.Name.Length != 0) {
 2609        Name = other.Name;
 2610      }
 2611      if (other.AgentType != global::Configs.AgentType.InvalidType) {
 2612        AgentType = other.AgentType;
 2613      }
 2614      if (other.Cost != 0F) {
 2615        Cost = other.Cost;
 2616      }
 2617      if (other.accelerationConfig_ != null) {
 2618        if (accelerationConfig_ == null) {
 2619          AccelerationConfig = new global::Configs.AccelerationConfig();
 2620        }
 2621        AccelerationConfig.MergeFrom(other.AccelerationConfig);
 2622      }
 2623      if (other.boostConfig_ != null) {
 2624        if (boostConfig_ == null) {
 2625          BoostConfig = new global::Configs.BoostConfig();
 2626        }
 2627        BoostConfig.MergeFrom(other.BoostConfig);
 2628      }
 2629      if (other.liftDragConfig_ != null) {
 2630        if (liftDragConfig_ == null) {
 2631          LiftDragConfig = new global::Configs.LiftDragConfig();
 2632        }
 2633        LiftDragConfig.MergeFrom(other.LiftDragConfig);
 2634      }
 2635      if (other.bodyConfig_ != null) {
 2636        if (bodyConfig_ == null) {
 2637          BodyConfig = new global::Configs.BodyConfig();
 2638        }
 2639        BodyConfig.MergeFrom(other.BodyConfig);
 2640      }
 2641      if (other.hitConfig_ != null) {
 2642        if (hitConfig_ == null) {
 2643          HitConfig = new global::Configs.HitConfig();
 2644        }
 2645        HitConfig.MergeFrom(other.HitConfig);
 2646      }
 2647      if (other.controllerConfig_ != null) {
 2648        if (controllerConfig_ == null) {
 2649          ControllerConfig = new global::Configs.ControllerConfig();
 2650        }
 2651        ControllerConfig.MergeFrom(other.ControllerConfig);
 2652      }
 2653      powerTable_.Add(other.powerTable_);
 2654      if (other.visualizationConfig_ != null) {
 2655        if (visualizationConfig_ == null) {
 2656          VisualizationConfig = new global::Configs.VisualizationConfig();
 2657        }
 2658        VisualizationConfig.MergeFrom(other.VisualizationConfig);
 2659      }
 2660      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 2661    }
 2662
 2663    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2664    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2665    public void MergeFrom(pb::CodedInputStream input) {
 2666    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2667      input.ReadRawMessage(this);
 2668    #else
 2669      uint tag;
 2670      while ((tag = input.ReadTag()) != 0) {
 2671      if ((tag & 7) == 4) {
 2672        // Abort on any end group tag.
 2673        return;
 2674      }
 2675      switch(tag) {
 2676          default:
 2677            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 2678            break;
 2679          case 10: {
 2680            Name = input.ReadString();
 2681            break;
 2682          }
 2683          case 16: {
 2684            AgentType = (global::Configs.AgentType) input.ReadEnum();
 2685            break;
 2686          }
 2687          case 29: {
 2688            Cost = input.ReadFloat();
 2689            break;
 2690          }
 2691          case 34: {
 2692            if (accelerationConfig_ == null) {
 2693              AccelerationConfig = new global::Configs.AccelerationConfig();
 2694            }
 2695            input.ReadMessage(AccelerationConfig);
 2696            break;
 2697          }
 2698          case 42: {
 2699            if (boostConfig_ == null) {
 2700              BoostConfig = new global::Configs.BoostConfig();
 2701            }
 2702            input.ReadMessage(BoostConfig);
 2703            break;
 2704          }
 2705          case 50: {
 2706            if (liftDragConfig_ == null) {
 2707              LiftDragConfig = new global::Configs.LiftDragConfig();
 2708            }
 2709            input.ReadMessage(LiftDragConfig);
 2710            break;
 2711          }
 2712          case 58: {
 2713            if (bodyConfig_ == null) {
 2714              BodyConfig = new global::Configs.BodyConfig();
 2715            }
 2716            input.ReadMessage(BodyConfig);
 2717            break;
 2718          }
 2719          case 66: {
 2720            if (hitConfig_ == null) {
 2721              HitConfig = new global::Configs.HitConfig();
 2722            }
 2723            input.ReadMessage(HitConfig);
 2724            break;
 2725          }
 2726          case 74: {
 2727            if (controllerConfig_ == null) {
 2728              ControllerConfig = new global::Configs.ControllerConfig();
 2729            }
 2730            input.ReadMessage(ControllerConfig);
 2731            break;
 2732          }
 2733          case 82: {
 2734            powerTable_.AddEntriesFrom(input, _repeated_powerTable_codec);
 2735            break;
 2736          }
 2737          case 90: {
 2738            if (visualizationConfig_ == null) {
 2739              VisualizationConfig = new global::Configs.VisualizationConfig();
 2740            }
 2741            input.ReadMessage(VisualizationConfig);
 2742            break;
 2743          }
 2744        }
 2745      }
 2746    #endif
 2747    }
 2748
 2749    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 2750    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 2751    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
 2752    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 2753      uint tag;
 2754      while ((tag = input.ReadTag()) != 0) {
 2755      if ((tag & 7) == 4) {
 2756        // Abort on any end group tag.
 2757        return;
 2758      }
 2759      switch(tag) {
 2760          default:
 2761            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 2762            break;
 2763          case 10: {
 2764            Name = input.ReadString();
 2765            break;
 2766          }
 2767          case 16: {
 2768            AgentType = (global::Configs.AgentType) input.ReadEnum();
 2769            break;
 2770          }
 2771          case 29: {
 2772            Cost = input.ReadFloat();
 2773            break;
 2774          }
 2775          case 34: {
 2776            if (accelerationConfig_ == null) {
 2777              AccelerationConfig = new global::Configs.AccelerationConfig();
 2778            }
 2779            input.ReadMessage(AccelerationConfig);
 2780            break;
 2781          }
 2782          case 42: {
 2783            if (boostConfig_ == null) {
 2784              BoostConfig = new global::Configs.BoostConfig();
 2785            }
 2786            input.ReadMessage(BoostConfig);
 2787            break;
 2788          }
 2789          case 50: {
 2790            if (liftDragConfig_ == null) {
 2791              LiftDragConfig = new global::Configs.LiftDragConfig();
 2792            }
 2793            input.ReadMessage(LiftDragConfig);
 2794            break;
 2795          }
 2796          case 58: {
 2797            if (bodyConfig_ == null) {
 2798              BodyConfig = new global::Configs.BodyConfig();
 2799            }
 2800            input.ReadMessage(BodyConfig);
 2801            break;
 2802          }
 2803          case 66: {
 2804            if (hitConfig_ == null) {
 2805              HitConfig = new global::Configs.HitConfig();
 2806            }
 2807            input.ReadMessage(HitConfig);
 2808            break;
 2809          }
 2810          case 74: {
 2811            if (controllerConfig_ == null) {
 2812              ControllerConfig = new global::Configs.ControllerConfig();
 2813            }
 2814            input.ReadMessage(ControllerConfig);
 2815            break;
 2816          }
 2817          case 82: {
 2818            powerTable_.AddEntriesFrom(ref input, _repeated_powerTable_codec);
 2819            break;
 2820          }
 2821          case 90: {
 2822            if (visualizationConfig_ == null) {
 2823              VisualizationConfig = new global::Configs.VisualizationConfig();
 2824            }
 2825            input.ReadMessage(VisualizationConfig);
 2826            break;
 2827          }
 2828        }
 2829      }
 2830    }
 2831    #endif
 2832
 2833  }
 2834
 2835  #endregion
 2836
 2837}
 2838
 2839#endregion Designer generated code