// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/vehicle_data.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/persistence/vehicle_data.proto</summary>
  public static partial class VehicleDataReflection {

    #region Descriptor
    /// <summary>File descriptor for rec_room/persistence/vehicle_data.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static VehicleDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CidyZWNfcm9vbS9wZXJzaXN0ZW5jZS92ZWhpY2xlX2RhdGEucHJvdG8SCHJl",
            "Y19yb29tIh8KD0Jhc2VWZWhpY2xlRGF0YRIMCgRtYXNzGAEgASgCImwKEUdy",
            "b3VuZFZlaGljbGVEYXRhEiwKCWJhc2VfZGF0YRgBIAEoCzIZLnJlY19yb29t",
            "LkJhc2VWZWhpY2xlRGF0YRIpCgVib29zdBgCIAEoCzIaLnJlY19yb29tLlZl",
            "aGljbGVCb29zdERhdGEiQwoRVmVoaWNsZUVuZ2luZURhdGESEgoKbWF4X3Rv",
            "cnF1ZRgBIAEoAhIaChJtYXhfcmV2ZXJzZV90b3JxdWUYAiABKAIihwEKFVdo",
            "ZWVsRGlmZmVyZW50aWFsRGF0YRIaChJtYXhfc3RlZXJpbmdfYW5nbGUYASAB",
            "KAISKgoiREVQUkVDQVRFRF9zdGVlcmluZ19heGxlX3doZWVsX2lkcxgCIAMo",
            "DBImCh5ERVBSRUNBVEVEX3JlYXJfYXhsZV93aGVlbF9pZHMYAyADKAwiwwQK",
            "GVdoZWVsU3VzcGVuc2lvblN5c3RlbURhdGESEQoJY2FuX3N0ZWVyGAEgASgI",
            "EhEKCWNhbl9kcml2ZRgCIAEoCBIVCg1jYW5faGFuZGJyYWtlGAMgASgIEhoK",
            "EmNhbl9kcml2ZV9vbl93YWxscxgEIAEoCBIgChhzdXNwZW5zaW9uX21heF9l",
            "eHRlbnNpb24YBSABKAISLgomc3VzcGVuc2lvbl9yZXN0X2NvbXByZXNzaW9u",
            "X3BlcmNlbnRhZ2UYBiABKAISIAoYc3VzcGVuc2lvbl9kYW1waW5nX3JhdGlv",
            "GAcgASgCEiEKGXdoZWVsX2Nvcm5lcmluZ19zdGlmZm5lc3MYCCABKAISLwon",
            "d2hlZWxfbG9uZ2l0dWRpbmFsX2ZyaWN0aW9uX2NvZWZmaWNpZW50GAkgASgC",
            "EioKIndoZWVsX2xhdGVyYWxfZnJpY3Rpb25fY29lZmZpY2llbnQYCiABKAIS",
            "OAowd2hlZWxfaGFuZGJyYWtlX2xvbmdpdHVkaW5hbF9mcmljdGlvbl9tdWx0",
            "aXBsaWVyGAsgASgCEjMKK3doZWVsX2hhbmRicmFrZV9sYXRlcmFsX2ZyaWN0",
            "aW9uX211bHRpcGxpZXIYDCABKAISKQohd2hlZWxfbWF4X3JvbGxpbmdfZnJp",
            "Y3Rpb25fdG9ycXVlGA0gASgCEiAKGHdoZWVsX21heF9icmFraW5nX3RvcnF1",
            "ZRgOIAEoAhIdChVzdXNwZW5zaW9uX2VmZmljaWVuY3kYDyABKAIiLQoQVmVo",
            "aWNsZUJvb3N0RGF0YRIZChFtYXhfZnVlbF9jYXBhY2l0eRgBIAEoBUITqgIQ",
            "UmVjUm9vbS5Qcm90b2J1ZmIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.BaseVehicleData), global::RecRoom.Protobuf.BaseVehicleData.Parser, new[]{ "Mass" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.GroundVehicleData), global::RecRoom.Protobuf.GroundVehicleData.Parser, new[]{ "BaseData", "Boost" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.VehicleEngineData), global::RecRoom.Protobuf.VehicleEngineData.Parser, new[]{ "MaxTorque", "MaxReverseTorque" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.WheelDifferentialData), global::RecRoom.Protobuf.WheelDifferentialData.Parser, new[]{ "MaxSteeringAngle", "DEPRECATEDSteeringAxleWheelIds", "DEPRECATEDRearAxleWheelIds" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.WheelSuspensionSystemData), global::RecRoom.Protobuf.WheelSuspensionSystemData.Parser, new[]{ "CanSteer", "CanDrive", "CanHandbrake", "CanDriveOnWalls", "SuspensionMaxExtension", "SuspensionRestCompressionPercentage", "SuspensionDampingRatio", "WheelCorneringStiffness", "WheelLongitudinalFrictionCoefficient", "WheelLateralFrictionCoefficient", "WheelHandbrakeLongitudinalFrictionMultiplier", "WheelHandbrakeLateralFrictionMultiplier", "WheelMaxRollingFrictionTorque", "WheelMaxBrakingTorque", "SuspensionEfficiency" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.VehicleBoostData), global::RecRoom.Protobuf.VehicleBoostData.Parser, new[]{ "MaxFuelCapacity" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class BaseVehicleData : pb::IMessage<BaseVehicleData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<BaseVehicleData> _parser = new pb::MessageParser<BaseVehicleData>(() => new BaseVehicleData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<BaseVehicleData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BaseVehicleData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BaseVehicleData(BaseVehicleData other) : this() {
      mass_ = other.mass_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BaseVehicleData Clone() {
      return new BaseVehicleData(this);
    }

    /// <summary>Field number for the "mass" field.</summary>
    public const int MassFieldNumber = 1;
    private float mass_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Mass {
      get { return mass_; }
      set {
        mass_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as BaseVehicleData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(BaseVehicleData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Mass, other.Mass)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Mass != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Mass);
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Mass != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Mass);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Mass != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Mass);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Mass != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(BaseVehicleData other) {
      if (other == null) {
        return;
      }
      if (other.Mass != 0F) {
        Mass = other.Mass;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            Mass = input.ReadFloat();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            Mass = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class GroundVehicleData : pb::IMessage<GroundVehicleData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GroundVehicleData> _parser = new pb::MessageParser<GroundVehicleData>(() => new GroundVehicleData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GroundVehicleData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GroundVehicleData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GroundVehicleData(GroundVehicleData other) : this() {
      baseData_ = other.baseData_ != null ? other.baseData_.Clone() : null;
      boost_ = other.boost_ != null ? other.boost_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GroundVehicleData Clone() {
      return new GroundVehicleData(this);
    }

    /// <summary>Field number for the "base_data" field.</summary>
    public const int BaseDataFieldNumber = 1;
    private global::RecRoom.Protobuf.BaseVehicleData baseData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.BaseVehicleData BaseData {
      get { return baseData_; }
      set {
        baseData_ = value;
      }
    }

    /// <summary>Field number for the "boost" field.</summary>
    public const int BoostFieldNumber = 2;
    private global::RecRoom.Protobuf.VehicleBoostData boost_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.VehicleBoostData Boost {
      get { return boost_; }
      set {
        boost_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GroundVehicleData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GroundVehicleData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(BaseData, other.BaseData)) return false;
      if (!object.Equals(Boost, other.Boost)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (baseData_ != null) hash ^= BaseData.GetHashCode();
      if (boost_ != null) hash ^= Boost.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (baseData_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseData);
      }
      if (boost_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Boost);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (baseData_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(BaseData);
      }
      if (boost_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Boost);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (baseData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseData);
      }
      if (boost_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Boost);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GroundVehicleData other) {
      if (other == null) {
        return;
      }
      if (other.baseData_ != null) {
        if (baseData_ == null) {
          BaseData = new global::RecRoom.Protobuf.BaseVehicleData();
        }
        BaseData.MergeFrom(other.BaseData);
      }
      if (other.boost_ != null) {
        if (boost_ == null) {
          Boost = new global::RecRoom.Protobuf.VehicleBoostData();
        }
        Boost.MergeFrom(other.Boost);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (baseData_ == null) {
              BaseData = new global::RecRoom.Protobuf.BaseVehicleData();
            }
            input.ReadMessage(BaseData);
            break;
          }
          case 18: {
            if (boost_ == null) {
              Boost = new global::RecRoom.Protobuf.VehicleBoostData();
            }
            input.ReadMessage(Boost);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (baseData_ == null) {
              BaseData = new global::RecRoom.Protobuf.BaseVehicleData();
            }
            input.ReadMessage(BaseData);
            break;
          }
          case 18: {
            if (boost_ == null) {
              Boost = new global::RecRoom.Protobuf.VehicleBoostData();
            }
            input.ReadMessage(Boost);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class VehicleEngineData : pb::IMessage<VehicleEngineData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<VehicleEngineData> _parser = new pb::MessageParser<VehicleEngineData>(() => new VehicleEngineData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<VehicleEngineData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleEngineData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleEngineData(VehicleEngineData other) : this() {
      maxTorque_ = other.maxTorque_;
      maxReverseTorque_ = other.maxReverseTorque_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleEngineData Clone() {
      return new VehicleEngineData(this);
    }

    /// <summary>Field number for the "max_torque" field.</summary>
    public const int MaxTorqueFieldNumber = 1;
    private float maxTorque_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float MaxTorque {
      get { return maxTorque_; }
      set {
        maxTorque_ = value;
      }
    }

    /// <summary>Field number for the "max_reverse_torque" field.</summary>
    public const int MaxReverseTorqueFieldNumber = 2;
    private float maxReverseTorque_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float MaxReverseTorque {
      get { return maxReverseTorque_; }
      set {
        maxReverseTorque_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as VehicleEngineData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(VehicleEngineData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxTorque, other.MaxTorque)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxReverseTorque, other.MaxReverseTorque)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (MaxTorque != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaxTorque);
      if (MaxReverseTorque != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaxReverseTorque);
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (MaxTorque != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(MaxTorque);
      }
      if (MaxReverseTorque != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MaxReverseTorque);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (MaxTorque != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(MaxTorque);
      }
      if (MaxReverseTorque != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MaxReverseTorque);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (MaxTorque != 0F) {
        size += 1 + 4;
      }
      if (MaxReverseTorque != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(VehicleEngineData other) {
      if (other == null) {
        return;
      }
      if (other.MaxTorque != 0F) {
        MaxTorque = other.MaxTorque;
      }
      if (other.MaxReverseTorque != 0F) {
        MaxReverseTorque = other.MaxReverseTorque;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            MaxTorque = input.ReadFloat();
            break;
          }
          case 21: {
            MaxReverseTorque = input.ReadFloat();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            MaxTorque = input.ReadFloat();
            break;
          }
          case 21: {
            MaxReverseTorque = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class WheelDifferentialData : pb::IMessage<WheelDifferentialData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WheelDifferentialData> _parser = new pb::MessageParser<WheelDifferentialData>(() => new WheelDifferentialData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WheelDifferentialData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelDifferentialData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelDifferentialData(WheelDifferentialData other) : this() {
      maxSteeringAngle_ = other.maxSteeringAngle_;
      dEPRECATEDSteeringAxleWheelIds_ = other.dEPRECATEDSteeringAxleWheelIds_.Clone();
      dEPRECATEDRearAxleWheelIds_ = other.dEPRECATEDRearAxleWheelIds_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelDifferentialData Clone() {
      return new WheelDifferentialData(this);
    }

    /// <summary>Field number for the "max_steering_angle" field.</summary>
    public const int MaxSteeringAngleFieldNumber = 1;
    private float maxSteeringAngle_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float MaxSteeringAngle {
      get { return maxSteeringAngle_; }
      set {
        maxSteeringAngle_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_steering_axle_wheel_ids" field.</summary>
    public const int DEPRECATEDSteeringAxleWheelIdsFieldNumber = 2;
    private static readonly pb::FieldCodec<pb::ByteString> _repeated_dEPRECATEDSteeringAxleWheelIds_codec
        = pb::FieldCodec.ForBytes(18);
    private readonly pbc::RepeatedField<pb::ByteString> dEPRECATEDSteeringAxleWheelIds_ = new pbc::RepeatedField<pb::ByteString>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<pb::ByteString> DEPRECATEDSteeringAxleWheelIds {
      get { return dEPRECATEDSteeringAxleWheelIds_; }
    }

    /// <summary>Field number for the "DEPRECATED_rear_axle_wheel_ids" field.</summary>
    public const int DEPRECATEDRearAxleWheelIdsFieldNumber = 3;
    private static readonly pb::FieldCodec<pb::ByteString> _repeated_dEPRECATEDRearAxleWheelIds_codec
        = pb::FieldCodec.ForBytes(26);
    private readonly pbc::RepeatedField<pb::ByteString> dEPRECATEDRearAxleWheelIds_ = new pbc::RepeatedField<pb::ByteString>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<pb::ByteString> DEPRECATEDRearAxleWheelIds {
      get { return dEPRECATEDRearAxleWheelIds_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WheelDifferentialData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WheelDifferentialData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxSteeringAngle, other.MaxSteeringAngle)) return false;
      if(!dEPRECATEDSteeringAxleWheelIds_.Equals(other.dEPRECATEDSteeringAxleWheelIds_)) return false;
      if(!dEPRECATEDRearAxleWheelIds_.Equals(other.dEPRECATEDRearAxleWheelIds_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (MaxSteeringAngle != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaxSteeringAngle);
      hash ^= dEPRECATEDSteeringAxleWheelIds_.GetHashCode();
      hash ^= dEPRECATEDRearAxleWheelIds_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (MaxSteeringAngle != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(MaxSteeringAngle);
      }
      dEPRECATEDSteeringAxleWheelIds_.WriteTo(output, _repeated_dEPRECATEDSteeringAxleWheelIds_codec);
      dEPRECATEDRearAxleWheelIds_.WriteTo(output, _repeated_dEPRECATEDRearAxleWheelIds_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (MaxSteeringAngle != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(MaxSteeringAngle);
      }
      dEPRECATEDSteeringAxleWheelIds_.WriteTo(ref output, _repeated_dEPRECATEDSteeringAxleWheelIds_codec);
      dEPRECATEDRearAxleWheelIds_.WriteTo(ref output, _repeated_dEPRECATEDRearAxleWheelIds_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (MaxSteeringAngle != 0F) {
        size += 1 + 4;
      }
      size += dEPRECATEDSteeringAxleWheelIds_.CalculateSize(_repeated_dEPRECATEDSteeringAxleWheelIds_codec);
      size += dEPRECATEDRearAxleWheelIds_.CalculateSize(_repeated_dEPRECATEDRearAxleWheelIds_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WheelDifferentialData other) {
      if (other == null) {
        return;
      }
      if (other.MaxSteeringAngle != 0F) {
        MaxSteeringAngle = other.MaxSteeringAngle;
      }
      dEPRECATEDSteeringAxleWheelIds_.Add(other.dEPRECATEDSteeringAxleWheelIds_);
      dEPRECATEDRearAxleWheelIds_.Add(other.dEPRECATEDRearAxleWheelIds_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            MaxSteeringAngle = input.ReadFloat();
            break;
          }
          case 18: {
            dEPRECATEDSteeringAxleWheelIds_.AddEntriesFrom(input, _repeated_dEPRECATEDSteeringAxleWheelIds_codec);
            break;
          }
          case 26: {
            dEPRECATEDRearAxleWheelIds_.AddEntriesFrom(input, _repeated_dEPRECATEDRearAxleWheelIds_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            MaxSteeringAngle = input.ReadFloat();
            break;
          }
          case 18: {
            dEPRECATEDSteeringAxleWheelIds_.AddEntriesFrom(ref input, _repeated_dEPRECATEDSteeringAxleWheelIds_codec);
            break;
          }
          case 26: {
            dEPRECATEDRearAxleWheelIds_.AddEntriesFrom(ref input, _repeated_dEPRECATEDRearAxleWheelIds_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class WheelSuspensionSystemData : pb::IMessage<WheelSuspensionSystemData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WheelSuspensionSystemData> _parser = new pb::MessageParser<WheelSuspensionSystemData>(() => new WheelSuspensionSystemData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WheelSuspensionSystemData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelSuspensionSystemData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelSuspensionSystemData(WheelSuspensionSystemData other) : this() {
      canSteer_ = other.canSteer_;
      canDrive_ = other.canDrive_;
      canHandbrake_ = other.canHandbrake_;
      canDriveOnWalls_ = other.canDriveOnWalls_;
      suspensionMaxExtension_ = other.suspensionMaxExtension_;
      suspensionRestCompressionPercentage_ = other.suspensionRestCompressionPercentage_;
      suspensionDampingRatio_ = other.suspensionDampingRatio_;
      wheelCorneringStiffness_ = other.wheelCorneringStiffness_;
      wheelLongitudinalFrictionCoefficient_ = other.wheelLongitudinalFrictionCoefficient_;
      wheelLateralFrictionCoefficient_ = other.wheelLateralFrictionCoefficient_;
      wheelHandbrakeLongitudinalFrictionMultiplier_ = other.wheelHandbrakeLongitudinalFrictionMultiplier_;
      wheelHandbrakeLateralFrictionMultiplier_ = other.wheelHandbrakeLateralFrictionMultiplier_;
      wheelMaxRollingFrictionTorque_ = other.wheelMaxRollingFrictionTorque_;
      wheelMaxBrakingTorque_ = other.wheelMaxBrakingTorque_;
      suspensionEfficiency_ = other.suspensionEfficiency_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WheelSuspensionSystemData Clone() {
      return new WheelSuspensionSystemData(this);
    }

    /// <summary>Field number for the "can_steer" field.</summary>
    public const int CanSteerFieldNumber = 1;
    private bool canSteer_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CanSteer {
      get { return canSteer_; }
      set {
        canSteer_ = value;
      }
    }

    /// <summary>Field number for the "can_drive" field.</summary>
    public const int CanDriveFieldNumber = 2;
    private bool canDrive_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CanDrive {
      get { return canDrive_; }
      set {
        canDrive_ = value;
      }
    }

    /// <summary>Field number for the "can_handbrake" field.</summary>
    public const int CanHandbrakeFieldNumber = 3;
    private bool canHandbrake_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CanHandbrake {
      get { return canHandbrake_; }
      set {
        canHandbrake_ = value;
      }
    }

    /// <summary>Field number for the "can_drive_on_walls" field.</summary>
    public const int CanDriveOnWallsFieldNumber = 4;
    private bool canDriveOnWalls_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CanDriveOnWalls {
      get { return canDriveOnWalls_; }
      set {
        canDriveOnWalls_ = value;
      }
    }

    /// <summary>Field number for the "suspension_max_extension" field.</summary>
    public const int SuspensionMaxExtensionFieldNumber = 5;
    private float suspensionMaxExtension_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float SuspensionMaxExtension {
      get { return suspensionMaxExtension_; }
      set {
        suspensionMaxExtension_ = value;
      }
    }

    /// <summary>Field number for the "suspension_rest_compression_percentage" field.</summary>
    public const int SuspensionRestCompressionPercentageFieldNumber = 6;
    private float suspensionRestCompressionPercentage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float SuspensionRestCompressionPercentage {
      get { return suspensionRestCompressionPercentage_; }
      set {
        suspensionRestCompressionPercentage_ = value;
      }
    }

    /// <summary>Field number for the "suspension_damping_ratio" field.</summary>
    public const int SuspensionDampingRatioFieldNumber = 7;
    private float suspensionDampingRatio_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float SuspensionDampingRatio {
      get { return suspensionDampingRatio_; }
      set {
        suspensionDampingRatio_ = value;
      }
    }

    /// <summary>Field number for the "wheel_cornering_stiffness" field.</summary>
    public const int WheelCorneringStiffnessFieldNumber = 8;
    private float wheelCorneringStiffness_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelCorneringStiffness {
      get { return wheelCorneringStiffness_; }
      set {
        wheelCorneringStiffness_ = value;
      }
    }

    /// <summary>Field number for the "wheel_longitudinal_friction_coefficient" field.</summary>
    public const int WheelLongitudinalFrictionCoefficientFieldNumber = 9;
    private float wheelLongitudinalFrictionCoefficient_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelLongitudinalFrictionCoefficient {
      get { return wheelLongitudinalFrictionCoefficient_; }
      set {
        wheelLongitudinalFrictionCoefficient_ = value;
      }
    }

    /// <summary>Field number for the "wheel_lateral_friction_coefficient" field.</summary>
    public const int WheelLateralFrictionCoefficientFieldNumber = 10;
    private float wheelLateralFrictionCoefficient_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelLateralFrictionCoefficient {
      get { return wheelLateralFrictionCoefficient_; }
      set {
        wheelLateralFrictionCoefficient_ = value;
      }
    }

    /// <summary>Field number for the "wheel_handbrake_longitudinal_friction_multiplier" field.</summary>
    public const int WheelHandbrakeLongitudinalFrictionMultiplierFieldNumber = 11;
    private float wheelHandbrakeLongitudinalFrictionMultiplier_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelHandbrakeLongitudinalFrictionMultiplier {
      get { return wheelHandbrakeLongitudinalFrictionMultiplier_; }
      set {
        wheelHandbrakeLongitudinalFrictionMultiplier_ = value;
      }
    }

    /// <summary>Field number for the "wheel_handbrake_lateral_friction_multiplier" field.</summary>
    public const int WheelHandbrakeLateralFrictionMultiplierFieldNumber = 12;
    private float wheelHandbrakeLateralFrictionMultiplier_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelHandbrakeLateralFrictionMultiplier {
      get { return wheelHandbrakeLateralFrictionMultiplier_; }
      set {
        wheelHandbrakeLateralFrictionMultiplier_ = value;
      }
    }

    /// <summary>Field number for the "wheel_max_rolling_friction_torque" field.</summary>
    public const int WheelMaxRollingFrictionTorqueFieldNumber = 13;
    private float wheelMaxRollingFrictionTorque_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelMaxRollingFrictionTorque {
      get { return wheelMaxRollingFrictionTorque_; }
      set {
        wheelMaxRollingFrictionTorque_ = value;
      }
    }

    /// <summary>Field number for the "wheel_max_braking_torque" field.</summary>
    public const int WheelMaxBrakingTorqueFieldNumber = 14;
    private float wheelMaxBrakingTorque_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float WheelMaxBrakingTorque {
      get { return wheelMaxBrakingTorque_; }
      set {
        wheelMaxBrakingTorque_ = value;
      }
    }

    /// <summary>Field number for the "suspension_efficiency" field.</summary>
    public const int SuspensionEfficiencyFieldNumber = 15;
    private float suspensionEfficiency_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float SuspensionEfficiency {
      get { return suspensionEfficiency_; }
      set {
        suspensionEfficiency_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WheelSuspensionSystemData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WheelSuspensionSystemData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CanSteer != other.CanSteer) return false;
      if (CanDrive != other.CanDrive) return false;
      if (CanHandbrake != other.CanHandbrake) return false;
      if (CanDriveOnWalls != other.CanDriveOnWalls) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SuspensionMaxExtension, other.SuspensionMaxExtension)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SuspensionRestCompressionPercentage, other.SuspensionRestCompressionPercentage)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SuspensionDampingRatio, other.SuspensionDampingRatio)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelCorneringStiffness, other.WheelCorneringStiffness)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelLongitudinalFrictionCoefficient, other.WheelLongitudinalFrictionCoefficient)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelLateralFrictionCoefficient, other.WheelLateralFrictionCoefficient)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelHandbrakeLongitudinalFrictionMultiplier, other.WheelHandbrakeLongitudinalFrictionMultiplier)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelHandbrakeLateralFrictionMultiplier, other.WheelHandbrakeLateralFrictionMultiplier)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelMaxRollingFrictionTorque, other.WheelMaxRollingFrictionTorque)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WheelMaxBrakingTorque, other.WheelMaxBrakingTorque)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SuspensionEfficiency, other.SuspensionEfficiency)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (CanSteer != false) hash ^= CanSteer.GetHashCode();
      if (CanDrive != false) hash ^= CanDrive.GetHashCode();
      if (CanHandbrake != false) hash ^= CanHandbrake.GetHashCode();
      if (CanDriveOnWalls != false) hash ^= CanDriveOnWalls.GetHashCode();
      if (SuspensionMaxExtension != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SuspensionMaxExtension);
      if (SuspensionRestCompressionPercentage != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SuspensionRestCompressionPercentage);
      if (SuspensionDampingRatio != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SuspensionDampingRatio);
      if (WheelCorneringStiffness != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelCorneringStiffness);
      if (WheelLongitudinalFrictionCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelLongitudinalFrictionCoefficient);
      if (WheelLateralFrictionCoefficient != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelLateralFrictionCoefficient);
      if (WheelHandbrakeLongitudinalFrictionMultiplier != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelHandbrakeLongitudinalFrictionMultiplier);
      if (WheelHandbrakeLateralFrictionMultiplier != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelHandbrakeLateralFrictionMultiplier);
      if (WheelMaxRollingFrictionTorque != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelMaxRollingFrictionTorque);
      if (WheelMaxBrakingTorque != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WheelMaxBrakingTorque);
      if (SuspensionEfficiency != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SuspensionEfficiency);
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (CanSteer != false) {
        output.WriteRawTag(8);
        output.WriteBool(CanSteer);
      }
      if (CanDrive != false) {
        output.WriteRawTag(16);
        output.WriteBool(CanDrive);
      }
      if (CanHandbrake != false) {
        output.WriteRawTag(24);
        output.WriteBool(CanHandbrake);
      }
      if (CanDriveOnWalls != false) {
        output.WriteRawTag(32);
        output.WriteBool(CanDriveOnWalls);
      }
      if (SuspensionMaxExtension != 0F) {
        output.WriteRawTag(45);
        output.WriteFloat(SuspensionMaxExtension);
      }
      if (SuspensionRestCompressionPercentage != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(SuspensionRestCompressionPercentage);
      }
      if (SuspensionDampingRatio != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(SuspensionDampingRatio);
      }
      if (WheelCorneringStiffness != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(WheelCorneringStiffness);
      }
      if (WheelLongitudinalFrictionCoefficient != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(WheelLongitudinalFrictionCoefficient);
      }
      if (WheelLateralFrictionCoefficient != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(WheelLateralFrictionCoefficient);
      }
      if (WheelHandbrakeLongitudinalFrictionMultiplier != 0F) {
        output.WriteRawTag(93);
        output.WriteFloat(WheelHandbrakeLongitudinalFrictionMultiplier);
      }
      if (WheelHandbrakeLateralFrictionMultiplier != 0F) {
        output.WriteRawTag(101);
        output.WriteFloat(WheelHandbrakeLateralFrictionMultiplier);
      }
      if (WheelMaxRollingFrictionTorque != 0F) {
        output.WriteRawTag(109);
        output.WriteFloat(WheelMaxRollingFrictionTorque);
      }
      if (WheelMaxBrakingTorque != 0F) {
        output.WriteRawTag(117);
        output.WriteFloat(WheelMaxBrakingTorque);
      }
      if (SuspensionEfficiency != 0F) {
        output.WriteRawTag(125);
        output.WriteFloat(SuspensionEfficiency);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (CanSteer != false) {
        output.WriteRawTag(8);
        output.WriteBool(CanSteer);
      }
      if (CanDrive != false) {
        output.WriteRawTag(16);
        output.WriteBool(CanDrive);
      }
      if (CanHandbrake != false) {
        output.WriteRawTag(24);
        output.WriteBool(CanHandbrake);
      }
      if (CanDriveOnWalls != false) {
        output.WriteRawTag(32);
        output.WriteBool(CanDriveOnWalls);
      }
      if (SuspensionMaxExtension != 0F) {
        output.WriteRawTag(45);
        output.WriteFloat(SuspensionMaxExtension);
      }
      if (SuspensionRestCompressionPercentage != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(SuspensionRestCompressionPercentage);
      }
      if (SuspensionDampingRatio != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(SuspensionDampingRatio);
      }
      if (WheelCorneringStiffness != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(WheelCorneringStiffness);
      }
      if (WheelLongitudinalFrictionCoefficient != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(WheelLongitudinalFrictionCoefficient);
      }
      if (WheelLateralFrictionCoefficient != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(WheelLateralFrictionCoefficient);
      }
      if (WheelHandbrakeLongitudinalFrictionMultiplier != 0F) {
        output.WriteRawTag(93);
        output.WriteFloat(WheelHandbrakeLongitudinalFrictionMultiplier);
      }
      if (WheelHandbrakeLateralFrictionMultiplier != 0F) {
        output.WriteRawTag(101);
        output.WriteFloat(WheelHandbrakeLateralFrictionMultiplier);
      }
      if (WheelMaxRollingFrictionTorque != 0F) {
        output.WriteRawTag(109);
        output.WriteFloat(WheelMaxRollingFrictionTorque);
      }
      if (WheelMaxBrakingTorque != 0F) {
        output.WriteRawTag(117);
        output.WriteFloat(WheelMaxBrakingTorque);
      }
      if (SuspensionEfficiency != 0F) {
        output.WriteRawTag(125);
        output.WriteFloat(SuspensionEfficiency);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (CanSteer != false) {
        size += 1 + 1;
      }
      if (CanDrive != false) {
        size += 1 + 1;
      }
      if (CanHandbrake != false) {
        size += 1 + 1;
      }
      if (CanDriveOnWalls != false) {
        size += 1 + 1;
      }
      if (SuspensionMaxExtension != 0F) {
        size += 1 + 4;
      }
      if (SuspensionRestCompressionPercentage != 0F) {
        size += 1 + 4;
      }
      if (SuspensionDampingRatio != 0F) {
        size += 1 + 4;
      }
      if (WheelCorneringStiffness != 0F) {
        size += 1 + 4;
      }
      if (WheelLongitudinalFrictionCoefficient != 0F) {
        size += 1 + 4;
      }
      if (WheelLateralFrictionCoefficient != 0F) {
        size += 1 + 4;
      }
      if (WheelHandbrakeLongitudinalFrictionMultiplier != 0F) {
        size += 1 + 4;
      }
      if (WheelHandbrakeLateralFrictionMultiplier != 0F) {
        size += 1 + 4;
      }
      if (WheelMaxRollingFrictionTorque != 0F) {
        size += 1 + 4;
      }
      if (WheelMaxBrakingTorque != 0F) {
        size += 1 + 4;
      }
      if (SuspensionEfficiency != 0F) {
        size += 1 + 4;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WheelSuspensionSystemData other) {
      if (other == null) {
        return;
      }
      if (other.CanSteer != false) {
        CanSteer = other.CanSteer;
      }
      if (other.CanDrive != false) {
        CanDrive = other.CanDrive;
      }
      if (other.CanHandbrake != false) {
        CanHandbrake = other.CanHandbrake;
      }
      if (other.CanDriveOnWalls != false) {
        CanDriveOnWalls = other.CanDriveOnWalls;
      }
      if (other.SuspensionMaxExtension != 0F) {
        SuspensionMaxExtension = other.SuspensionMaxExtension;
      }
      if (other.SuspensionRestCompressionPercentage != 0F) {
        SuspensionRestCompressionPercentage = other.SuspensionRestCompressionPercentage;
      }
      if (other.SuspensionDampingRatio != 0F) {
        SuspensionDampingRatio = other.SuspensionDampingRatio;
      }
      if (other.WheelCorneringStiffness != 0F) {
        WheelCorneringStiffness = other.WheelCorneringStiffness;
      }
      if (other.WheelLongitudinalFrictionCoefficient != 0F) {
        WheelLongitudinalFrictionCoefficient = other.WheelLongitudinalFrictionCoefficient;
      }
      if (other.WheelLateralFrictionCoefficient != 0F) {
        WheelLateralFrictionCoefficient = other.WheelLateralFrictionCoefficient;
      }
      if (other.WheelHandbrakeLongitudinalFrictionMultiplier != 0F) {
        WheelHandbrakeLongitudinalFrictionMultiplier = other.WheelHandbrakeLongitudinalFrictionMultiplier;
      }
      if (other.WheelHandbrakeLateralFrictionMultiplier != 0F) {
        WheelHandbrakeLateralFrictionMultiplier = other.WheelHandbrakeLateralFrictionMultiplier;
      }
      if (other.WheelMaxRollingFrictionTorque != 0F) {
        WheelMaxRollingFrictionTorque = other.WheelMaxRollingFrictionTorque;
      }
      if (other.WheelMaxBrakingTorque != 0F) {
        WheelMaxBrakingTorque = other.WheelMaxBrakingTorque;
      }
      if (other.SuspensionEfficiency != 0F) {
        SuspensionEfficiency = other.SuspensionEfficiency;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CanSteer = input.ReadBool();
            break;
          }
          case 16: {
            CanDrive = input.ReadBool();
            break;
          }
          case 24: {
            CanHandbrake = input.ReadBool();
            break;
          }
          case 32: {
            CanDriveOnWalls = input.ReadBool();
            break;
          }
          case 45: {
            SuspensionMaxExtension = input.ReadFloat();
            break;
          }
          case 53: {
            SuspensionRestCompressionPercentage = input.ReadFloat();
            break;
          }
          case 61: {
            SuspensionDampingRatio = input.ReadFloat();
            break;
          }
          case 69: {
            WheelCorneringStiffness = input.ReadFloat();
            break;
          }
          case 77: {
            WheelLongitudinalFrictionCoefficient = input.ReadFloat();
            break;
          }
          case 85: {
            WheelLateralFrictionCoefficient = input.ReadFloat();
            break;
          }
          case 93: {
            WheelHandbrakeLongitudinalFrictionMultiplier = input.ReadFloat();
            break;
          }
          case 101: {
            WheelHandbrakeLateralFrictionMultiplier = input.ReadFloat();
            break;
          }
          case 109: {
            WheelMaxRollingFrictionTorque = input.ReadFloat();
            break;
          }
          case 117: {
            WheelMaxBrakingTorque = input.ReadFloat();
            break;
          }
          case 125: {
            SuspensionEfficiency = input.ReadFloat();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CanSteer = input.ReadBool();
            break;
          }
          case 16: {
            CanDrive = input.ReadBool();
            break;
          }
          case 24: {
            CanHandbrake = input.ReadBool();
            break;
          }
          case 32: {
            CanDriveOnWalls = input.ReadBool();
            break;
          }
          case 45: {
            SuspensionMaxExtension = input.ReadFloat();
            break;
          }
          case 53: {
            SuspensionRestCompressionPercentage = input.ReadFloat();
            break;
          }
          case 61: {
            SuspensionDampingRatio = input.ReadFloat();
            break;
          }
          case 69: {
            WheelCorneringStiffness = input.ReadFloat();
            break;
          }
          case 77: {
            WheelLongitudinalFrictionCoefficient = input.ReadFloat();
            break;
          }
          case 85: {
            WheelLateralFrictionCoefficient = input.ReadFloat();
            break;
          }
          case 93: {
            WheelHandbrakeLongitudinalFrictionMultiplier = input.ReadFloat();
            break;
          }
          case 101: {
            WheelHandbrakeLateralFrictionMultiplier = input.ReadFloat();
            break;
          }
          case 109: {
            WheelMaxRollingFrictionTorque = input.ReadFloat();
            break;
          }
          case 117: {
            WheelMaxBrakingTorque = input.ReadFloat();
            break;
          }
          case 125: {
            SuspensionEfficiency = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class VehicleBoostData : pb::IMessage<VehicleBoostData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<VehicleBoostData> _parser = new pb::MessageParser<VehicleBoostData>(() => new VehicleBoostData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<VehicleBoostData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.VehicleDataReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleBoostData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleBoostData(VehicleBoostData other) : this() {
      maxFuelCapacity_ = other.maxFuelCapacity_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public VehicleBoostData Clone() {
      return new VehicleBoostData(this);
    }

    /// <summary>Field number for the "max_fuel_capacity" field.</summary>
    public const int MaxFuelCapacityFieldNumber = 1;
    private int maxFuelCapacity_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MaxFuelCapacity {
      get { return maxFuelCapacity_; }
      set {
        maxFuelCapacity_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as VehicleBoostData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(VehicleBoostData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (MaxFuelCapacity != other.MaxFuelCapacity) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (MaxFuelCapacity != 0) hash ^= MaxFuelCapacity.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (MaxFuelCapacity != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(MaxFuelCapacity);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (MaxFuelCapacity != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(MaxFuelCapacity);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (MaxFuelCapacity != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxFuelCapacity);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(VehicleBoostData other) {
      if (other == null) {
        return;
      }
      if (other.MaxFuelCapacity != 0) {
        MaxFuelCapacity = other.MaxFuelCapacity;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            MaxFuelCapacity = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            MaxFuelCapacity = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
