// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/creation_transient/template_spawn_request_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.Creation.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/creation_transient/template_spawn_request_data.proto</summary>
  public static partial class TemplateSpawnRequestDataReflection {

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

    static TemplateSpawnRequestDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cj1yZWNfcm9vbS9jcmVhdGlvbl90cmFuc2llbnQvdGVtcGxhdGVfc3Bhd25f",
            "cmVxdWVzdF9kYXRhLnByb3RvEghjcmVhdGlvbhoXY29yZS92ZWN0b3IzX2Rh",
            "dGEucHJvdG8aGmNvcmUvcXVhdGVybmlvbl9kYXRhLnByb3RvGjByZWNfcm9v",
            "bS9wZXJzaXN0ZW5jZS9wZXJzaXN0ZW5jZV92aWV3X2RhdGEucHJvdG8ipwMK",
            "GFRlbXBsYXRlU3Bhd25SZXF1ZXN0RGF0YRJAChdzcGF3bmFibGVfdGVtcGxh",
            "dGVfZGF0YRgBIAEoCzIfLnJlY19yb29tLlNwYXduYWJsZVRlbXBsYXRlRGF0",
            "YRI2Cg5jb3N0X2luZm9fZGF0YRgCIAEoCzIeLmNyZWF0aW9uLlRlbXBsYXRl",
            "Q29zdEluZm9EYXRhEhYKDmFzc2lnbl9uZXdfaWRzGAMgASgIEhEKCXBhcmVu",
            "dF9pZBgEIAEoDRIYChBjaXJjdWl0X2dyYXBoX2lkGAUgASgMEkIKFHNwYXdu",
            "X3RyYW5zZm9ybV9kYXRhGAYgASgLMiQuY3JlYXRpb24uVGVtcGxhdGVTcGF3",
            "blRyYW5zZm9ybURhdGESSQobb3JpZ2luX3Njb3BlX3RyYW5zZm9ybV9kYXRh",
            "GAcgASgLMiQuY3JlYXRpb24uVGVtcGxhdGVTcGF3blRyYW5zZm9ybURhdGES",
            "HAoUc2VyaWFsaXphdGlvbl9yZWFzb24YCCABKAUSHwoXREVQUkVDQVRFRF9z",
            "a2lwX2N1bGxpbmcYCSABKAgifwoZVGVtcGxhdGVTcGF3blJlc3BvbnNlRGF0",
            "YRIcChRzcGF3bmVkX29iamVjdF9ndWlkcxgCIAMoDBIwChFvbGRfdG9fbmV3",
            "X2lkX21hcBgDIAMoCzIVLmNyZWF0aW9uLkd1aWRNYXBwaW5nEhIKCnJvb3Rf",
            "Y291bnQYBCABKA0iLAoLR3VpZE1hcHBpbmcSEAoIT3JpZ2luYWwYASABKAwS",
            "CwoDTmV3GAIgASgMIn4KFFRlbXBsYXRlQ29zdEluZm9EYXRhEhAKCGlua19j",
            "b3N0GAEgASgFEhMKC2xpZ2h0c19jb3N0GAIgASgFEg8KB2FpX2Nvc3QYAyAB",
            "KAUSEQoJbnVtX2NoaXBzGAQgASgFEhsKE251bV9jbG91ZF92YXJpYWJsZXMY",
            "BSABKAUieAoaVGVtcGxhdGVTcGF3blRyYW5zZm9ybURhdGESIwoIcG9zaXRp",
            "b24YASABKAsyES5jb3JlLlZlY3RvcjNEYXRhEiYKCHJvdGF0aW9uGAIgASgL",
            "MhQuY29yZS5RdWF0ZXJuaW9uRGF0YRINCgVzY2FsZRgDIAEoAkIcqgIZUmVj",
            "Um9vbS5DcmVhdGlvbi5Qcm90b2J1ZmIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::RecRoom.Protobuf.Core.Vector3DataReflection.Descriptor, global::RecRoom.Protobuf.Core.QuaternionDataReflection.Descriptor, global::RecRoom.Protobuf.PersistenceViewDataReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Creation.Protobuf.TemplateSpawnRequestData), global::RecRoom.Creation.Protobuf.TemplateSpawnRequestData.Parser, new[]{ "SpawnableTemplateData", "CostInfoData", "AssignNewIds", "ParentId", "CircuitGraphId", "SpawnTransformData", "OriginScopeTransformData", "SerializationReason", "DEPRECATEDSkipCulling" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Creation.Protobuf.TemplateSpawnResponseData), global::RecRoom.Creation.Protobuf.TemplateSpawnResponseData.Parser, new[]{ "SpawnedObjectGuids", "OldToNewIdMap", "RootCount" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Creation.Protobuf.GuidMapping), global::RecRoom.Creation.Protobuf.GuidMapping.Parser, new[]{ "Original", "New" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Creation.Protobuf.TemplateCostInfoData), global::RecRoom.Creation.Protobuf.TemplateCostInfoData.Parser, new[]{ "InkCost", "LightsCost", "AiCost", "NumChips", "NumCloudVariables" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData), global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData.Parser, new[]{ "Position", "Rotation", "Scale" }, null, null, null, null)
          }));
    }
    #endregion

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Creation.Protobuf.TemplateSpawnRequestDataReflection.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 TemplateSpawnRequestData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TemplateSpawnRequestData(TemplateSpawnRequestData other) : this() {
      spawnableTemplateData_ = other.spawnableTemplateData_ != null ? other.spawnableTemplateData_.Clone() : null;
      costInfoData_ = other.costInfoData_ != null ? other.costInfoData_.Clone() : null;
      assignNewIds_ = other.assignNewIds_;
      parentId_ = other.parentId_;
      circuitGraphId_ = other.circuitGraphId_;
      spawnTransformData_ = other.spawnTransformData_ != null ? other.spawnTransformData_.Clone() : null;
      originScopeTransformData_ = other.originScopeTransformData_ != null ? other.originScopeTransformData_.Clone() : null;
      serializationReason_ = other.serializationReason_;
      dEPRECATEDSkipCulling_ = other.dEPRECATEDSkipCulling_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "cost_info_data" field.</summary>
    public const int CostInfoDataFieldNumber = 2;
    private global::RecRoom.Creation.Protobuf.TemplateCostInfoData costInfoData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Creation.Protobuf.TemplateCostInfoData CostInfoData {
      get { return costInfoData_; }
      set {
        costInfoData_ = value;
      }
    }

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

    /// <summary>Field number for the "parent_id" field.</summary>
    public const int ParentIdFieldNumber = 4;
    private uint parentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ParentId {
      get { return parentId_; }
      set {
        parentId_ = value;
      }
    }

    /// <summary>Field number for the "circuit_graph_id" field.</summary>
    public const int CircuitGraphIdFieldNumber = 5;
    private pb::ByteString circuitGraphId_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString CircuitGraphId {
      get { return circuitGraphId_; }
      set {
        circuitGraphId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "spawn_transform_data" field.</summary>
    public const int SpawnTransformDataFieldNumber = 6;
    private global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData spawnTransformData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData SpawnTransformData {
      get { return spawnTransformData_; }
      set {
        spawnTransformData_ = value;
      }
    }

    /// <summary>Field number for the "origin_scope_transform_data" field.</summary>
    public const int OriginScopeTransformDataFieldNumber = 7;
    private global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData originScopeTransformData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData OriginScopeTransformData {
      get { return originScopeTransformData_; }
      set {
        originScopeTransformData_ = value;
      }
    }

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

    /// <summary>Field number for the "DEPRECATED_skip_culling" field.</summary>
    public const int DEPRECATEDSkipCullingFieldNumber = 9;
    private bool dEPRECATEDSkipCulling_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DEPRECATEDSkipCulling {
      get { return dEPRECATEDSkipCulling_; }
      set {
        dEPRECATEDSkipCulling_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TemplateSpawnRequestData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(SpawnableTemplateData, other.SpawnableTemplateData)) return false;
      if (!object.Equals(CostInfoData, other.CostInfoData)) return false;
      if (AssignNewIds != other.AssignNewIds) return false;
      if (ParentId != other.ParentId) return false;
      if (CircuitGraphId != other.CircuitGraphId) return false;
      if (!object.Equals(SpawnTransformData, other.SpawnTransformData)) return false;
      if (!object.Equals(OriginScopeTransformData, other.OriginScopeTransformData)) return false;
      if (SerializationReason != other.SerializationReason) return false;
      if (DEPRECATEDSkipCulling != other.DEPRECATEDSkipCulling) 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 (spawnableTemplateData_ != null) hash ^= SpawnableTemplateData.GetHashCode();
      if (costInfoData_ != null) hash ^= CostInfoData.GetHashCode();
      if (AssignNewIds != false) hash ^= AssignNewIds.GetHashCode();
      if (ParentId != 0) hash ^= ParentId.GetHashCode();
      if (CircuitGraphId.Length != 0) hash ^= CircuitGraphId.GetHashCode();
      if (spawnTransformData_ != null) hash ^= SpawnTransformData.GetHashCode();
      if (originScopeTransformData_ != null) hash ^= OriginScopeTransformData.GetHashCode();
      if (SerializationReason != 0) hash ^= SerializationReason.GetHashCode();
      if (DEPRECATEDSkipCulling != false) hash ^= DEPRECATEDSkipCulling.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 (spawnableTemplateData_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(SpawnableTemplateData);
      }
      if (costInfoData_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CostInfoData);
      }
      if (AssignNewIds != false) {
        output.WriteRawTag(24);
        output.WriteBool(AssignNewIds);
      }
      if (ParentId != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(ParentId);
      }
      if (CircuitGraphId.Length != 0) {
        output.WriteRawTag(42);
        output.WriteBytes(CircuitGraphId);
      }
      if (spawnTransformData_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(SpawnTransformData);
      }
      if (originScopeTransformData_ != null) {
        output.WriteRawTag(58);
        output.WriteMessage(OriginScopeTransformData);
      }
      if (SerializationReason != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(SerializationReason);
      }
      if (DEPRECATEDSkipCulling != false) {
        output.WriteRawTag(72);
        output.WriteBool(DEPRECATEDSkipCulling);
      }
      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 (spawnableTemplateData_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(SpawnableTemplateData);
      }
      if (costInfoData_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CostInfoData);
      }
      if (AssignNewIds != false) {
        output.WriteRawTag(24);
        output.WriteBool(AssignNewIds);
      }
      if (ParentId != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(ParentId);
      }
      if (CircuitGraphId.Length != 0) {
        output.WriteRawTag(42);
        output.WriteBytes(CircuitGraphId);
      }
      if (spawnTransformData_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(SpawnTransformData);
      }
      if (originScopeTransformData_ != null) {
        output.WriteRawTag(58);
        output.WriteMessage(OriginScopeTransformData);
      }
      if (SerializationReason != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(SerializationReason);
      }
      if (DEPRECATEDSkipCulling != false) {
        output.WriteRawTag(72);
        output.WriteBool(DEPRECATEDSkipCulling);
      }
      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 (spawnableTemplateData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SpawnableTemplateData);
      }
      if (costInfoData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CostInfoData);
      }
      if (AssignNewIds != false) {
        size += 1 + 1;
      }
      if (ParentId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ParentId);
      }
      if (CircuitGraphId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(CircuitGraphId);
      }
      if (spawnTransformData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SpawnTransformData);
      }
      if (originScopeTransformData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(OriginScopeTransformData);
      }
      if (SerializationReason != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SerializationReason);
      }
      if (DEPRECATEDSkipCulling != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TemplateSpawnRequestData other) {
      if (other == null) {
        return;
      }
      if (other.spawnableTemplateData_ != null) {
        if (spawnableTemplateData_ == null) {
          SpawnableTemplateData = new global::RecRoom.Protobuf.SpawnableTemplateData();
        }
        SpawnableTemplateData.MergeFrom(other.SpawnableTemplateData);
      }
      if (other.costInfoData_ != null) {
        if (costInfoData_ == null) {
          CostInfoData = new global::RecRoom.Creation.Protobuf.TemplateCostInfoData();
        }
        CostInfoData.MergeFrom(other.CostInfoData);
      }
      if (other.AssignNewIds != false) {
        AssignNewIds = other.AssignNewIds;
      }
      if (other.ParentId != 0) {
        ParentId = other.ParentId;
      }
      if (other.CircuitGraphId.Length != 0) {
        CircuitGraphId = other.CircuitGraphId;
      }
      if (other.spawnTransformData_ != null) {
        if (spawnTransformData_ == null) {
          SpawnTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
        }
        SpawnTransformData.MergeFrom(other.SpawnTransformData);
      }
      if (other.originScopeTransformData_ != null) {
        if (originScopeTransformData_ == null) {
          OriginScopeTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
        }
        OriginScopeTransformData.MergeFrom(other.OriginScopeTransformData);
      }
      if (other.SerializationReason != 0) {
        SerializationReason = other.SerializationReason;
      }
      if (other.DEPRECATEDSkipCulling != false) {
        DEPRECATEDSkipCulling = other.DEPRECATEDSkipCulling;
      }
      _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 (spawnableTemplateData_ == null) {
              SpawnableTemplateData = new global::RecRoom.Protobuf.SpawnableTemplateData();
            }
            input.ReadMessage(SpawnableTemplateData);
            break;
          }
          case 18: {
            if (costInfoData_ == null) {
              CostInfoData = new global::RecRoom.Creation.Protobuf.TemplateCostInfoData();
            }
            input.ReadMessage(CostInfoData);
            break;
          }
          case 24: {
            AssignNewIds = input.ReadBool();
            break;
          }
          case 32: {
            ParentId = input.ReadUInt32();
            break;
          }
          case 42: {
            CircuitGraphId = input.ReadBytes();
            break;
          }
          case 50: {
            if (spawnTransformData_ == null) {
              SpawnTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
            }
            input.ReadMessage(SpawnTransformData);
            break;
          }
          case 58: {
            if (originScopeTransformData_ == null) {
              OriginScopeTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
            }
            input.ReadMessage(OriginScopeTransformData);
            break;
          }
          case 64: {
            SerializationReason = input.ReadInt32();
            break;
          }
          case 72: {
            DEPRECATEDSkipCulling = input.ReadBool();
            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 (spawnableTemplateData_ == null) {
              SpawnableTemplateData = new global::RecRoom.Protobuf.SpawnableTemplateData();
            }
            input.ReadMessage(SpawnableTemplateData);
            break;
          }
          case 18: {
            if (costInfoData_ == null) {
              CostInfoData = new global::RecRoom.Creation.Protobuf.TemplateCostInfoData();
            }
            input.ReadMessage(CostInfoData);
            break;
          }
          case 24: {
            AssignNewIds = input.ReadBool();
            break;
          }
          case 32: {
            ParentId = input.ReadUInt32();
            break;
          }
          case 42: {
            CircuitGraphId = input.ReadBytes();
            break;
          }
          case 50: {
            if (spawnTransformData_ == null) {
              SpawnTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
            }
            input.ReadMessage(SpawnTransformData);
            break;
          }
          case 58: {
            if (originScopeTransformData_ == null) {
              OriginScopeTransformData = new global::RecRoom.Creation.Protobuf.TemplateSpawnTransformData();
            }
            input.ReadMessage(OriginScopeTransformData);
            break;
          }
          case 64: {
            SerializationReason = input.ReadInt32();
            break;
          }
          case 72: {
            DEPRECATEDSkipCulling = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Creation.Protobuf.TemplateSpawnRequestDataReflection.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 TemplateSpawnResponseData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "old_to_new_id_map" field.</summary>
    public const int OldToNewIdMapFieldNumber = 3;
    private static readonly pb::FieldCodec<global::RecRoom.Creation.Protobuf.GuidMapping> _repeated_oldToNewIdMap_codec
        = pb::FieldCodec.ForMessage(26, global::RecRoom.Creation.Protobuf.GuidMapping.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Creation.Protobuf.GuidMapping> oldToNewIdMap_ = new pbc::RepeatedField<global::RecRoom.Creation.Protobuf.GuidMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Creation.Protobuf.GuidMapping> OldToNewIdMap {
      get { return oldToNewIdMap_; }
    }

    /// <summary>Field number for the "root_count" field.</summary>
    public const int RootCountFieldNumber = 4;
    private uint rootCount_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint RootCount {
      get { return rootCount_; }
      set {
        rootCount_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TemplateSpawnResponseData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!spawnedObjectGuids_.Equals(other.spawnedObjectGuids_)) return false;
      if(!oldToNewIdMap_.Equals(other.oldToNewIdMap_)) return false;
      if (RootCount != other.RootCount) 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;
      hash ^= spawnedObjectGuids_.GetHashCode();
      hash ^= oldToNewIdMap_.GetHashCode();
      if (RootCount != 0) hash ^= RootCount.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
      spawnedObjectGuids_.WriteTo(output, _repeated_spawnedObjectGuids_codec);
      oldToNewIdMap_.WriteTo(output, _repeated_oldToNewIdMap_codec);
      if (RootCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(RootCount);
      }
      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) {
      spawnedObjectGuids_.WriteTo(ref output, _repeated_spawnedObjectGuids_codec);
      oldToNewIdMap_.WriteTo(ref output, _repeated_oldToNewIdMap_codec);
      if (RootCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(RootCount);
      }
      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;
      size += spawnedObjectGuids_.CalculateSize(_repeated_spawnedObjectGuids_codec);
      size += oldToNewIdMap_.CalculateSize(_repeated_oldToNewIdMap_codec);
      if (RootCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(RootCount);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TemplateSpawnResponseData other) {
      if (other == null) {
        return;
      }
      spawnedObjectGuids_.Add(other.spawnedObjectGuids_);
      oldToNewIdMap_.Add(other.oldToNewIdMap_);
      if (other.RootCount != 0) {
        RootCount = other.RootCount;
      }
      _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 18: {
            spawnedObjectGuids_.AddEntriesFrom(input, _repeated_spawnedObjectGuids_codec);
            break;
          }
          case 26: {
            oldToNewIdMap_.AddEntriesFrom(input, _repeated_oldToNewIdMap_codec);
            break;
          }
          case 32: {
            RootCount = input.ReadUInt32();
            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 18: {
            spawnedObjectGuids_.AddEntriesFrom(ref input, _repeated_spawnedObjectGuids_codec);
            break;
          }
          case 26: {
            oldToNewIdMap_.AddEntriesFrom(ref input, _repeated_oldToNewIdMap_codec);
            break;
          }
          case 32: {
            RootCount = input.ReadUInt32();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Creation.Protobuf.TemplateSpawnRequestDataReflection.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 GuidMapping() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "Original" field.</summary>
    public const int OriginalFieldNumber = 1;
    private pb::ByteString original_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString Original {
      get { return original_; }
      set {
        original_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "New" field.</summary>
    public const int NewFieldNumber = 2;
    private pb::ByteString new_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString New {
      get { return new_; }
      set {
        new_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GuidMapping other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Original != other.Original) return false;
      if (New != other.New) 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 (Original.Length != 0) hash ^= Original.GetHashCode();
      if (New.Length != 0) hash ^= New.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 (Original.Length != 0) {
        output.WriteRawTag(10);
        output.WriteBytes(Original);
      }
      if (New.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(New);
      }
      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 (Original.Length != 0) {
        output.WriteRawTag(10);
        output.WriteBytes(Original);
      }
      if (New.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(New);
      }
      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 (Original.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Original);
      }
      if (New.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(New);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GuidMapping other) {
      if (other == null) {
        return;
      }
      if (other.Original.Length != 0) {
        Original = other.Original;
      }
      if (other.New.Length != 0) {
        New = other.New;
      }
      _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: {
            Original = input.ReadBytes();
            break;
          }
          case 18: {
            New = input.ReadBytes();
            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: {
            Original = input.ReadBytes();
            break;
          }
          case 18: {
            New = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Creation.Protobuf.TemplateSpawnRequestDataReflection.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 TemplateCostInfoData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TemplateCostInfoData(TemplateCostInfoData other) : this() {
      inkCost_ = other.inkCost_;
      lightsCost_ = other.lightsCost_;
      aiCost_ = other.aiCost_;
      numChips_ = other.numChips_;
      numCloudVariables_ = other.numCloudVariables_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

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

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TemplateCostInfoData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (InkCost != other.InkCost) return false;
      if (LightsCost != other.LightsCost) return false;
      if (AiCost != other.AiCost) return false;
      if (NumChips != other.NumChips) return false;
      if (NumCloudVariables != other.NumCloudVariables) 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 (InkCost != 0) hash ^= InkCost.GetHashCode();
      if (LightsCost != 0) hash ^= LightsCost.GetHashCode();
      if (AiCost != 0) hash ^= AiCost.GetHashCode();
      if (NumChips != 0) hash ^= NumChips.GetHashCode();
      if (NumCloudVariables != 0) hash ^= NumCloudVariables.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 (InkCost != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(InkCost);
      }
      if (LightsCost != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(LightsCost);
      }
      if (AiCost != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(AiCost);
      }
      if (NumChips != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(NumChips);
      }
      if (NumCloudVariables != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(NumCloudVariables);
      }
      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 (InkCost != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(InkCost);
      }
      if (LightsCost != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(LightsCost);
      }
      if (AiCost != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(AiCost);
      }
      if (NumChips != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(NumChips);
      }
      if (NumCloudVariables != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(NumCloudVariables);
      }
      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 (InkCost != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(InkCost);
      }
      if (LightsCost != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(LightsCost);
      }
      if (AiCost != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(AiCost);
      }
      if (NumChips != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumChips);
      }
      if (NumCloudVariables != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumCloudVariables);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TemplateCostInfoData other) {
      if (other == null) {
        return;
      }
      if (other.InkCost != 0) {
        InkCost = other.InkCost;
      }
      if (other.LightsCost != 0) {
        LightsCost = other.LightsCost;
      }
      if (other.AiCost != 0) {
        AiCost = other.AiCost;
      }
      if (other.NumChips != 0) {
        NumChips = other.NumChips;
      }
      if (other.NumCloudVariables != 0) {
        NumCloudVariables = other.NumCloudVariables;
      }
      _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: {
            InkCost = input.ReadInt32();
            break;
          }
          case 16: {
            LightsCost = input.ReadInt32();
            break;
          }
          case 24: {
            AiCost = input.ReadInt32();
            break;
          }
          case 32: {
            NumChips = input.ReadInt32();
            break;
          }
          case 40: {
            NumCloudVariables = 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: {
            InkCost = input.ReadInt32();
            break;
          }
          case 16: {
            LightsCost = input.ReadInt32();
            break;
          }
          case 24: {
            AiCost = input.ReadInt32();
            break;
          }
          case 32: {
            NumChips = input.ReadInt32();
            break;
          }
          case 40: {
            NumCloudVariables = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Creation.Protobuf.TemplateSpawnRequestDataReflection.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 TemplateSpawnTransformData() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "position" field.</summary>
    public const int PositionFieldNumber = 1;
    private global::RecRoom.Protobuf.Core.Vector3Data position_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.Core.Vector3Data Position {
      get { return position_; }
      set {
        position_ = value;
      }
    }

    /// <summary>Field number for the "rotation" field.</summary>
    public const int RotationFieldNumber = 2;
    private global::RecRoom.Protobuf.Core.QuaternionData rotation_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.Core.QuaternionData Rotation {
      get { return rotation_; }
      set {
        rotation_ = value;
      }
    }

    /// <summary>Field number for the "scale" field.</summary>
    public const int ScaleFieldNumber = 3;
    private float scale_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Scale {
      get { return scale_; }
      set {
        scale_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TemplateSpawnTransformData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Position, other.Position)) return false;
      if (!object.Equals(Rotation, other.Rotation)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Scale, other.Scale)) 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 (position_ != null) hash ^= Position.GetHashCode();
      if (rotation_ != null) hash ^= Rotation.GetHashCode();
      if (Scale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Scale);
      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 (position_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Position);
      }
      if (rotation_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Rotation);
      }
      if (Scale != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(Scale);
      }
      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 (position_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Position);
      }
      if (rotation_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Rotation);
      }
      if (Scale != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(Scale);
      }
      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 (position_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Position);
      }
      if (rotation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Rotation);
      }
      if (Scale != 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(TemplateSpawnTransformData other) {
      if (other == null) {
        return;
      }
      if (other.position_ != null) {
        if (position_ == null) {
          Position = new global::RecRoom.Protobuf.Core.Vector3Data();
        }
        Position.MergeFrom(other.Position);
      }
      if (other.rotation_ != null) {
        if (rotation_ == null) {
          Rotation = new global::RecRoom.Protobuf.Core.QuaternionData();
        }
        Rotation.MergeFrom(other.Rotation);
      }
      if (other.Scale != 0F) {
        Scale = other.Scale;
      }
      _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 (position_ == null) {
              Position = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            input.ReadMessage(Position);
            break;
          }
          case 18: {
            if (rotation_ == null) {
              Rotation = new global::RecRoom.Protobuf.Core.QuaternionData();
            }
            input.ReadMessage(Rotation);
            break;
          }
          case 29: {
            Scale = 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 10: {
            if (position_ == null) {
              Position = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            input.ReadMessage(Position);
            break;
          }
          case 18: {
            if (rotation_ == null) {
              Rotation = new global::RecRoom.Protobuf.Core.QuaternionData();
            }
            input.ReadMessage(Rotation);
            break;
          }
          case 29: {
            Scale = input.ReadFloat();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
