// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: appearances.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;

namespace OXGaming.TibiaAPI.Utilities
{

    /// <summary>Holder for reflection information generated from appearances.proto</summary>
    public static partial class AppearancesReflection
    {

        #region Descriptor
        /// <summary>File descriptor for appearances.proto</summary>
        public static pbr::FileDescriptor Descriptor { get; private set; }

        static AppearancesReflection()
        {
            byte[] descriptorData = global::System.Convert.FromBase64String(
                string.Concat(
                  "ChFhcHBlYXJhbmNlcy5wcm90bxIadGliaWEucHJvdG9idWYuYXBwZWFyYW5j",
                  "ZXMizwIKC0FwcGVhcmFuY2VzEjYKBm9iamVjdBgBIAMoCzImLnRpYmlhLnBy",
                  "b3RvYnVmLmFwcGVhcmFuY2VzLkFwcGVhcmFuY2USNgoGb3V0Zml0GAIgAygL",
                  "MiYudGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuQXBwZWFyYW5jZRI2CgZl",
                  "ZmZlY3QYAyADKAsyJi50aWJpYS5wcm90b2J1Zi5hcHBlYXJhbmNlcy5BcHBl",
                  "YXJhbmNlEjcKB21pc3NpbGUYBCADKAsyJi50aWJpYS5wcm90b2J1Zi5hcHBl",
                  "YXJhbmNlcy5BcHBlYXJhbmNlEl8KHnNwZWNpYWxfbWVhbmluZ19hcHBlYXJh",
                  "bmNlX2lkcxgFIAEoCzI3LnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLlNw",
                  "ZWNpYWxNZWFuaW5nQXBwZWFyYW5jZUlkcyI5CgtTcHJpdGVQaGFzZRIUCgxk",
                  "dXJhdGlvbl9taW4YASABKA0SFAoMZHVyYXRpb25fbWF4GAIgASgNIvcBCg9T",
                  "cHJpdGVBbmltYXRpb24SGwoTZGVmYXVsdF9zdGFydF9waGFzZRgBIAEoDRIU",
                  "CgxzeW5jaHJvbml6ZWQYAiABKAgSGgoScmFuZG9tX3N0YXJ0X3BoYXNlGAMg",
                  "ASgIEkIKCWxvb3BfdHlwZRgEIAEoDjIvLnRpYmlhLnByb3RvYnVmLmFwcGVh",
                  "cmFuY2VzLkFOSU1BVElPTl9MT09QX1RZUEUSEgoKbG9vcF9jb3VudBgFIAEo",
                  "DRI9CgxzcHJpdGVfcGhhc2UYBiADKAsyJy50aWJpYS5wcm90b2J1Zi5hcHBl",
                  "YXJhbmNlcy5TcHJpdGVQaGFzZSI6CgNCb3gSCQoBeBgBIAEoDRIJCgF5GAIg",
                  "ASgNEg0KBXdpZHRoGAMgASgNEg4KBmhlaWdodBgEIAEoDSKmAgoKU3ByaXRl",
                  "SW5mbxIVCg1wYXR0ZXJuX3dpZHRoGAEgASgNEhYKDnBhdHRlcm5faGVpZ2h0",
                  "GAIgASgNEhUKDXBhdHRlcm5fZGVwdGgYAyABKA0SDgoGbGF5ZXJzGAQgASgN",
                  "EhEKCXNwcml0ZV9pZBgFIAMoDRIXCg9ib3VuZGluZ19zcXVhcmUYByABKA0S",
                  "PgoJYW5pbWF0aW9uGAYgASgLMisudGliaWEucHJvdG9idWYuYXBwZWFyYW5j",
                  "ZXMuU3ByaXRlQW5pbWF0aW9uEhEKCWlzX29wYXF1ZRgIIAEoCBJDChpib3Vu",
                  "ZGluZ19ib3hfcGVyX2RpcmVjdGlvbhgJIAMoCzIfLnRpYmlhLnByb3RvYnVm",
                  "LmFwcGVhcmFuY2VzLkJveCKfAQoKRnJhbWVHcm91cBJIChFmaXhlZF9mcmFt",
                  "ZV9ncm91cBgBIAEoDjItLnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLkZJ",
                  "WEVEX0ZSQU1FX0dST1VQEgoKAmlkGAIgASgNEjsKC3Nwcml0ZV9pbmZvGAMg",
                  "ASgLMiYudGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuU3ByaXRlSW5mbyKf",
                  "AQoKQXBwZWFyYW5jZRIKCgJpZBgBIAEoDRI7CgtmcmFtZV9ncm91cBgCIAMo",
                  "CzImLnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLkZyYW1lR3JvdXASOgoF",
                  "ZmxhZ3MYAyABKAsyKy50aWJpYS5wcm90b2J1Zi5hcHBlYXJhbmNlcy5BcHBl",
                  "YXJhbmNlRmxhZ3MSDAoEbmFtZRgEIAEoCSKyDAoPQXBwZWFyYW5jZUZsYWdz",
                  "EjwKBGJhbmsYASABKAsyLi50aWJpYS5wcm90b2J1Zi5hcHBlYXJhbmNlcy5B",
                  "cHBlYXJhbmNlRmxhZ0JhbmsSDAoEY2xpcBgCIAEoCBIOCgZib3R0b20YAyAB",
                  "KAgSCwoDdG9wGAQgASgIEhEKCWNvbnRhaW5lchgFIAEoCBISCgpjdW11bGF0",
                  "aXZlGAYgASgIEg4KBnVzYWJsZRgHIAEoCBIQCghmb3JjZXVzZRgIIAEoCBIQ",
                  "CghtdWx0aXVzZRgJIAEoCBI+CgV3cml0ZRgKIAEoCzIvLnRpYmlhLnByb3Rv",
                  "YnVmLmFwcGVhcmFuY2VzLkFwcGVhcmFuY2VGbGFnV3JpdGUSRwoKd3JpdGVf",
                  "b25jZRgLIAEoCzIzLnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLkFwcGVh",
                  "cmFuY2VGbGFnV3JpdGVPbmNlEhIKCmxpcXVpZHBvb2wYDCABKAgSDgoGdW5w",
                  "YXNzGA0gASgIEg4KBnVubW92ZRgOIAEoCBIPCgd1bnNpZ2h0GA8gASgIEg0K",
                  "BWF2b2lkGBAgASgIEh0KFW5vX21vdmVtZW50X2FuaW1hdGlvbhgRIAEoCBIM",
                  "CgR0YWtlGBIgASgIEhcKD2xpcXVpZGNvbnRhaW5lchgTIAEoCBIMCgRoYW5n",
                  "GBQgASgIEjwKBGhvb2sYFSABKAsyLi50aWJpYS5wcm90b2J1Zi5hcHBlYXJh",
                  "bmNlcy5BcHBlYXJhbmNlRmxhZ0hvb2sSDgoGcm90YXRlGBYgASgIEj4KBWxp",
                  "Z2h0GBcgASgLMi8udGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuQXBwZWFy",
                  "YW5jZUZsYWdMaWdodBIRCglkb250X2hpZGUYGCABKAgSEwoLdHJhbnNsdWNl",
                  "bnQYGSABKAgSPgoFc2hpZnQYGiABKAsyLy50aWJpYS5wcm90b2J1Zi5hcHBl",
                  "YXJhbmNlcy5BcHBlYXJhbmNlRmxhZ1NoaWZ0EkAKBmhlaWdodBgbIAEoCzIw",
                  "LnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLkFwcGVhcmFuY2VGbGFnSGVp",
                  "Z2h0EhQKDGx5aW5nX29iamVjdBgcIAEoCBIWCg5hbmltYXRlX2Fsd2F5cxgd",
                  "IAEoCBJCCgdhdXRvbWFwGB4gASgLMjEudGliaWEucHJvdG9idWYuYXBwZWFy",
                  "YW5jZXMuQXBwZWFyYW5jZUZsYWdBdXRvbWFwEkQKCGxlbnNoZWxwGB8gASgL",
                  "MjIudGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuQXBwZWFyYW5jZUZsYWdM",
                  "ZW5zaGVscBIQCghmdWxsYmFuaxggIAEoCBITCgtpZ25vcmVfbG9vaxghIAEo",
                  "CBJCCgdjbG90aGVzGCIgASgLMjEudGliaWEucHJvdG9idWYuYXBwZWFyYW5j",
                  "ZXMuQXBwZWFyYW5jZUZsYWdDbG90aGVzEk8KDmRlZmF1bHRfYWN0aW9uGCMg",
                  "ASgLMjcudGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuQXBwZWFyYW5jZUZs",
                  "YWdEZWZhdWx0QWN0aW9uEkAKBm1hcmtldBgkIAEoCzIwLnRpYmlhLnByb3Rv",
                  "YnVmLmFwcGVhcmFuY2VzLkFwcGVhcmFuY2VGbGFnTWFya2V0EgwKBHdyYXAY",
                  "JSABKAgSDgoGdW53cmFwGCYgASgIEhEKCXRvcGVmZmVjdBgnIAEoCBJCCgtu",
                  "cGNzYWxlZGF0YRgoIAMoCzItLnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2Vz",
                  "LkFwcGVhcmFuY2VGbGFnTlBDElIKD2NoYW5nZWR0b2V4cGlyZRgpIAEoCzI5",
                  "LnRpYmlhLnByb3RvYnVmLmFwcGVhcmFuY2VzLkFwcGVhcmFuY2VGbGFnQ2hh",
                  "bmdlZFRvRXhwaXJlEg4KBmNvcnBzZRgqIAEoCBIVCg1wbGF5ZXJfY29ycHNl",
                  "GCsgASgIEkwKDmN5Y2xvcGVkaWFpdGVtGCwgASgLMjQudGliaWEucHJvdG9i",
                  "dWYuYXBwZWFyYW5jZXMuQXBwZWFyYW5jZUZsYWdDeWNsb3BlZGlhIicKEkFw",
                  "cGVhcmFuY2VGbGFnQmFuaxIRCgl3YXlwb2ludHMYASABKA0iLgoTQXBwZWFy",
                  "YW5jZUZsYWdXcml0ZRIXCg9tYXhfdGV4dF9sZW5ndGgYASABKA0iNwoXQXBw",
                  "ZWFyYW5jZUZsYWdXcml0ZU9uY2USHAoUbWF4X3RleHRfbGVuZ3RoX29uY2UY",
                  "ASABKA0iOAoTQXBwZWFyYW5jZUZsYWdMaWdodBISCgpicmlnaHRuZXNzGAEg",
                  "ASgNEg0KBWNvbG9yGAIgASgNIikKFEFwcGVhcmFuY2VGbGFnSGVpZ2h0EhEK",
                  "CWVsZXZhdGlvbhgBIAEoDSIrChNBcHBlYXJhbmNlRmxhZ1NoaWZ0EgkKAXgY",
                  "ASABKA0SCQoBeRgCIAEoDSIlChVBcHBlYXJhbmNlRmxhZ0Nsb3RoZXMSDAoE",
                  "c2xvdBgBIAEoDSJYChtBcHBlYXJhbmNlRmxhZ0RlZmF1bHRBY3Rpb24SOQoG",
                  "YWN0aW9uGAEgASgOMikudGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuUExB",
                  "WUVSX0FDVElPTiLwAQoUQXBwZWFyYW5jZUZsYWdNYXJrZXQSOwoIY2F0ZWdv",
                  "cnkYASABKA4yKS50aWJpYS5wcm90b2J1Zi5hcHBlYXJhbmNlcy5JVEVNX0NB",
                  "VEVHT1JZEhoKEnRyYWRlX2FzX29iamVjdF9pZBgCIAEoDRIZChFzaG93X2Fz",
                  "X29iamVjdF9pZBgDIAEoDRJNChZyZXN0cmljdF90b19wcm9mZXNzaW9uGAUg",
                  "AygOMi0udGliaWEucHJvdG9idWYuYXBwZWFyYW5jZXMuUExBWUVSX1BST0ZF",
                  "U1NJT04SFQoNbWluaW11bV9sZXZlbBgGIAEoDSJaChFBcHBlYXJhbmNlRmxh",
                  "Z05QQxIMCgRuYW1lGAEgASgJEhAKCGxvY2F0aW9uGAIgASgJEhIKCnNhbGVf",
                  "cHJpY2UYAyABKA0SEQoJYnV5X3ByaWNlGAQgASgNIiYKFUFwcGVhcmFuY2VG",
                  "bGFnQXV0b21hcBINCgVjb2xvchgBIAEoDSJOChJBcHBlYXJhbmNlRmxhZ0hv",
                  "b2sSOAoJZGlyZWN0aW9uGAEgASgOMiUudGliaWEucHJvdG9idWYuYXBwZWFy",
                  "YW5jZXMuSE9PS19UWVBFIiQKFkFwcGVhcmFuY2VGbGFnTGVuc2hlbHASCgoC",
                  "aWQYASABKA0iPQodQXBwZWFyYW5jZUZsYWdDaGFuZ2VkVG9FeHBpcmUSHAoU",
                  "Zm9ybWVyX29iamVjdF90eXBlaWQYASABKA0iMwoYQXBwZWFyYW5jZUZsYWdD",
                  "eWNsb3BlZGlhEhcKD2N5Y2xvcGVkaWFfdHlwZRgBIAEoDSKxAQobU3BlY2lh",
                  "bE1lYW5pbmdBcHBlYXJhbmNlSWRzEhQKDGdvbGRfY29pbl9pZBgBIAEoDRIY",
                  "ChBwbGF0aW51bV9jb2luX2lkGAIgASgNEhcKD2NyeXN0YWxfY29pbl9pZBgD",
                  "IAEoDRIVCg10aWJpYV9jb2luX2lkGAQgASgNEhkKEXN0YW1wZWRfbGV0dGVy",
                  "X2lkGAUgASgNEhcKD3N1cHBseV9zdGFzaF9pZBgGIAEoDSqBAQoRRklYRURf",
                  "RlJBTUVfR1JPVVASIQodRklYRURfRlJBTUVfR1JPVVBfT1VURklUX0lETEUQ",
                  "ABIjCh9GSVhFRF9GUkFNRV9HUk9VUF9PVVRGSVRfTU9WSU5HEAESJAogRklY",
                  "RURfRlJBTUVfR1JPVVBfT0JKRUNUX0lOSVRJQUwQAiqUAQoNUExBWUVSX0FD",
                  "VElPThIWChJQTEFZRVJfQUNUSU9OX05PTkUQABIWChJQTEFZRVJfQUNUSU9O",
                  "X0xPT0sQARIVChFQTEFZRVJfQUNUSU9OX1VTRRACEhYKElBMQVlFUl9BQ1RJ",
                  "T05fT1BFThADEiQKIFBMQVlFUl9BQ1RJT05fQVVUT1dBTEtfSElHSExJR0hU",
                  "EAQqywUKDUlURU1fQ0FURUdPUlkSFgoSSVRFTV9DQVRFR09SWV9OT05FEAAS",
                  "GAoUSVRFTV9DQVRFR09SWV9BUk1PUlMQARIZChVJVEVNX0NBVEVHT1JZX0FN",
                  "VUxFVFMQAhIXChNJVEVNX0NBVEVHT1JZX0JPT1RTEAMSHAoYSVRFTV9DQVRF",
                  "R09SWV9DT05UQUlORVJTEAQSHAoYSVRFTV9DQVRFR09SWV9ERUNPUkFUSU9O",
                  "EAUSFgoSSVRFTV9DQVRFR09SWV9GT09EEAYSHgoaSVRFTV9DQVRFR09SWV9I",
                  "RUxNRVRTX0hBVFMQBxIWChJJVEVNX0NBVEVHT1JZX0xFR1MQCBIYChRJVEVN",
                  "X0NBVEVHT1JZX09USEVSUxAJEhkKFUlURU1fQ0FURUdPUllfUE9USU9OUxAK",
                  "EhcKE0lURU1fQ0FURUdPUllfUklOR1MQCxIXChNJVEVNX0NBVEVHT1JZX1JV",
                  "TkVTEAwSGQoVSVRFTV9DQVRFR09SWV9TSElFTERTEA0SFwoTSVRFTV9DQVRF",
                  "R09SWV9UT09MUxAOEhsKF0lURU1fQ0FURUdPUllfVkFMVUFCTEVTEA8SHAoY",
                  "SVRFTV9DQVRFR09SWV9BTU1VTklUSU9OEBASFgoSSVRFTV9DQVRFR09SWV9B",
                  "WEVTEBESFwoTSVRFTV9DQVRFR09SWV9DTFVCUxASEiIKHklURU1fQ0FURUdP",
                  "UllfRElTVEFOQ0VfV0VBUE9OUxATEhgKFElURU1fQ0FURUdPUllfU1dPUkRT",
                  "EBQSHAoYSVRFTV9DQVRFR09SWV9XQU5EU19ST0RTEBUSIQodSVRFTV9DQVRF",
                  "R09SWV9QUkVNSVVNX1NDUk9MTFMQFhIdChlJVEVNX0NBVEVHT1JZX1RJQklB",
                  "X0NPSU5TEBcSIwofSVRFTV9DQVRFR09SWV9DUkVBVFVSRV9QUk9EVUNUUxAY",
                  "Ku0BChFQTEFZRVJfUFJPRkVTU0lPThIaChZQTEFZRVJfUFJPRkVTU0lPTl9O",
                  "T05FEAASIgoVUExBWUVSX1BST0ZFU1NJT05fQU5ZEP///////////wESHAoY",
                  "UExBWUVSX1BST0ZFU1NJT05fS05JR0hUEAESHQoZUExBWUVSX1BST0ZFU1NJ",
                  "T05fUEFMQURJThACEh4KGlBMQVlFUl9QUk9GRVNTSU9OX1NPUkNFUkVSEAMS",
                  "GwoXUExBWUVSX1BST0ZFU1NJT05fRFJVSUQQBBIeChpQTEFZRVJfUFJPRkVT",
                  "U0lPTl9QUk9NT1RFRBAKKoMBChNBTklNQVRJT05fTE9PUF9UWVBFEiAKHEFO",
                  "SU1BVElPTl9MT09QX1RZUEVfSU5GSU5JVEUQABIpChxBTklNQVRJT05fTE9P",
                  "UF9UWVBFX1BJTkdQT05HEP///////////wESHwobQU5JTUFUSU9OX0xPT1Bf",
                  "VFlQRV9DT1VOVEVEEAEqSAoJSE9PS19UWVBFEhIKDkhPT0tfVFlQRV9OT05F",
                  "EAASEwoPSE9PS19UWVBFX1NPVVRIEAESEgoOSE9PS19UWVBFX0VBU1QQAmIG",
                  "cHJvdG8z"));
            Descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
                System.Array.Empty<pbr.FileDescriptor>(),
                new pbr::GeneratedClrTypeInfo(new[] { typeof(FixedFrameGroup), typeof(PlayerAction), typeof(ItemCategory), typeof(PlayerProfession), typeof(AnimationLoopType), typeof(HookType), }, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(Appearances), Appearances.Parser, new[]{ "Object", "Outfit", "Effect", "Missile", "SpecialMeaningAppearanceIds" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(SpritePhase), SpritePhase.Parser, new[]{ "DurationMin", "DurationMax" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(SpriteAnimation), SpriteAnimation.Parser, new[]{ "DefaultStartPhase", "Synchronized", "RandomStartPhase", "LoopType", "LoopCount", "SpritePhase" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(Box), Box.Parser, new[]{ "X", "Y", "Width", "Height" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(SpriteInfo), SpriteInfo.Parser, new[]{ "PatternWidth", "PatternHeight", "PatternDepth", "Layers", "SpriteId", "BoundingSquare", "Animation", "IsOpaque", "BoundingBoxPerDirection" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(FrameGroup), FrameGroup.Parser, new[]{ "FixedFrameGroup", "Id", "SpriteInfo" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(Appearance), Appearance.Parser, new[]{ "Id", "FrameGroup", "Flags", "Name" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlags), AppearanceFlags.Parser, new[]{ "Bank", "Clip", "Bottom", "Top", "Container", "Cumulative", "Usable", "Forceuse", "Multiuse", "Write", "WriteOnce", "Liquidpool", "Unpass", "Unmove", "Unsight", "Avoid", "NoMovementAnimation", "Take", "Liquidcontainer", "Hang", "Hook", "Rotate", "Light", "DontHide", "Translucent", "Shift", "Height", "LyingObject", "AnimateAlways", "Automap", "Lenshelp", "Fullbank", "IgnoreLook", "Clothes", "DefaultAction", "Market", "Wrap", "Unwrap", "Topeffect", "Npcsaledata", "Changedtoexpire", "Corpse", "PlayerCorpse", "Cyclopediaitem" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagBank), AppearanceFlagBank.Parser, new[]{ "Waypoints" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagWrite), AppearanceFlagWrite.Parser, new[]{ "MaxTextLength" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagWriteOnce), AppearanceFlagWriteOnce.Parser, new[]{ "MaxTextLengthOnce" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagLight), AppearanceFlagLight.Parser, new[]{ "Brightness", "Color" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagHeight), AppearanceFlagHeight.Parser, new[]{ "Elevation" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagShift), AppearanceFlagShift.Parser, new[]{ "X", "Y" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagClothes), AppearanceFlagClothes.Parser, new[]{ "Slot" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagDefaultAction), AppearanceFlagDefaultAction.Parser, new[]{ "Action" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagMarket), AppearanceFlagMarket.Parser, new[]{ "Category", "TradeAsObjectId", "ShowAsObjectId", "RestrictToProfession", "MinimumLevel" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagNPC), AppearanceFlagNPC.Parser, new[]{ "Name", "Location", "SalePrice", "BuyPrice" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagAutomap), AppearanceFlagAutomap.Parser, new[]{ "Color" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagHook), AppearanceFlagHook.Parser, new[]{ "Direction" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagLenshelp), AppearanceFlagLenshelp.Parser, new[]{ "Id" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagChangedToExpire), AppearanceFlagChangedToExpire.Parser, new[]{ "FormerObjectTypeid" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(AppearanceFlagCyclopedia), AppearanceFlagCyclopedia.Parser, new[]{ "CyclopediaType" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(SpecialMeaningAppearanceIds), SpecialMeaningAppearanceIds.Parser, new[]{ "GoldCoinId", "PlatinumCoinId", "CrystalCoinId", "TibiaCoinId", "StampedLetterId", "SupplyStashId" }, null, null, null)
                }));
        }
        #endregion

    }
    #region Enums
    public enum FixedFrameGroup
    {
        [pbr::OriginalName("FIXED_FRAME_GROUP_OUTFIT_IDLE")] OutfitIdle = 0,
        [pbr::OriginalName("FIXED_FRAME_GROUP_OUTFIT_MOVING")] OutfitMoving = 1,
        [pbr::OriginalName("FIXED_FRAME_GROUP_OBJECT_INITIAL")] ObjectInitial = 2,
    }

    public enum PlayerAction
    {
        [pbr::OriginalName("PLAYER_ACTION_NONE")] None = 0,
        [pbr::OriginalName("PLAYER_ACTION_LOOK")] Look = 1,
        [pbr::OriginalName("PLAYER_ACTION_USE")] Use = 2,
        [pbr::OriginalName("PLAYER_ACTION_OPEN")] Open = 3,
        [pbr::OriginalName("PLAYER_ACTION_AUTOWALK_HIGHLIGHT")] AutowalkHighlight = 4,
    }

    public enum ItemCategory
    {
        [pbr::OriginalName("ITEM_CATEGORY_NONE")] None = 0,
        [pbr::OriginalName("ITEM_CATEGORY_ARMORS")] Armors = 1,
        [pbr::OriginalName("ITEM_CATEGORY_AMULETS")] Amulets = 2,
        [pbr::OriginalName("ITEM_CATEGORY_BOOTS")] Boots = 3,
        [pbr::OriginalName("ITEM_CATEGORY_CONTAINERS")] Containers = 4,
        [pbr::OriginalName("ITEM_CATEGORY_DECORATION")] Decoration = 5,
        [pbr::OriginalName("ITEM_CATEGORY_FOOD")] Food = 6,
        [pbr::OriginalName("ITEM_CATEGORY_HELMETS_HATS")] HelmetsHats = 7,
        [pbr::OriginalName("ITEM_CATEGORY_LEGS")] Legs = 8,
        [pbr::OriginalName("ITEM_CATEGORY_OTHERS")] Others = 9,
        [pbr::OriginalName("ITEM_CATEGORY_POTIONS")] Potions = 10,
        [pbr::OriginalName("ITEM_CATEGORY_RINGS")] Rings = 11,
        [pbr::OriginalName("ITEM_CATEGORY_RUNES")] Runes = 12,
        [pbr::OriginalName("ITEM_CATEGORY_SHIELDS")] Shields = 13,
        [pbr::OriginalName("ITEM_CATEGORY_TOOLS")] Tools = 14,
        [pbr::OriginalName("ITEM_CATEGORY_VALUABLES")] Valuables = 15,
        [pbr::OriginalName("ITEM_CATEGORY_AMMUNITION")] Ammunition = 16,
        [pbr::OriginalName("ITEM_CATEGORY_AXES")] Axes = 17,
        [pbr::OriginalName("ITEM_CATEGORY_CLUBS")] Clubs = 18,
        [pbr::OriginalName("ITEM_CATEGORY_DISTANCE_WEAPONS")] DistanceWeapons = 19,
        [pbr::OriginalName("ITEM_CATEGORY_SWORDS")] Swords = 20,
        [pbr::OriginalName("ITEM_CATEGORY_WANDS_RODS")] WandsRods = 21,
        [pbr::OriginalName("ITEM_CATEGORY_PREMIUM_SCROLLS")] PremiumScrolls = 22,
        [pbr::OriginalName("ITEM_CATEGORY_TIBIA_COINS")] TibiaCoins = 23,
        [pbr::OriginalName("ITEM_CATEGORY_CREATURE_PRODUCTS")] CreatureProducts = 24,
    }

    public enum PlayerProfession
    {
        [pbr::OriginalName("PLAYER_PROFESSION_NONE")] None = 0,
        [pbr::OriginalName("PLAYER_PROFESSION_ANY")] Any = -1,
        [pbr::OriginalName("PLAYER_PROFESSION_KNIGHT")] Knight = 1,
        [pbr::OriginalName("PLAYER_PROFESSION_PALADIN")] Paladin = 2,
        [pbr::OriginalName("PLAYER_PROFESSION_SORCERER")] Sorcerer = 3,
        [pbr::OriginalName("PLAYER_PROFESSION_DRUID")] Druid = 4,
        [pbr::OriginalName("PLAYER_PROFESSION_PROMOTED")] Promoted = 10,
    }

    public enum AnimationLoopType
    {
        [pbr::OriginalName("ANIMATION_LOOP_TYPE_INFINITE")] Infinite = 0,
        [pbr::OriginalName("ANIMATION_LOOP_TYPE_PINGPONG")] Pingpong = -1,
        [pbr::OriginalName("ANIMATION_LOOP_TYPE_COUNTED")] Counted = 1,
    }

    public enum HookType
    {
        [pbr::OriginalName("HOOK_TYPE_NONE")] None = 0,
        [pbr::OriginalName("HOOK_TYPE_SOUTH")] South = 1,
        [pbr::OriginalName("HOOK_TYPE_EAST")] East = 2,
    }

    #endregion

    #region Messages
#pragma warning disable CA1724 // Type names should not match namespaces
    public sealed partial class Appearances : pb::IMessage<Appearances>
#pragma warning restore CA1724 // Type names should not match namespaces
    {
        private static readonly pb::MessageParser<Appearances> _parser = new pb::MessageParser<Appearances>(() => new Appearances());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<Appearances> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[0]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearances()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearances(Appearances other) : this()
        {
            Object = other.Object.Clone();
            outfit_ = other.outfit_.Clone();
            effect_ = other.effect_.Clone();
            missile_ = other.missile_.Clone();
            SpecialMeaningAppearanceIds = other.specialMeaningAppearanceIds_ != null ? other.SpecialMeaningAppearanceIds.Clone() : null;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearances Clone()
        {
            return new Appearances(this);
        }

        /// <summary>Field number for the "object" field.</summary>
        public const int ObjectFieldNumber = 1;
        private static readonly pb::FieldCodec<Appearance> _repeated_object_codec
            = pb::FieldCodec.ForMessage(10, Appearance.Parser);
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
#pragma warning disable CA1720 // Identifier contains type name
        public pbc::RepeatedField<Appearance> Object { get; } = new pbc::RepeatedField<Appearance>();
#pragma warning restore CA1720 // Identifier contains type name

        /// <summary>Field number for the "outfit" field.</summary>
        public const int OutfitFieldNumber = 2;
        private static readonly pb::FieldCodec<Appearance> _repeated_outfit_codec
            = pb::FieldCodec.ForMessage(18, Appearance.Parser);
        private readonly pbc::RepeatedField<Appearance> outfit_ = new pbc::RepeatedField<Appearance>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<Appearance> Outfit
        {
            get { return outfit_; }
        }

        /// <summary>Field number for the "effect" field.</summary>
        public const int EffectFieldNumber = 3;
        private static readonly pb::FieldCodec<Appearance> _repeated_effect_codec
            = pb::FieldCodec.ForMessage(26, Appearance.Parser);
        private readonly pbc::RepeatedField<Appearance> effect_ = new pbc::RepeatedField<Appearance>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<Appearance> Effect
        {
            get { return effect_; }
        }

        /// <summary>Field number for the "missile" field.</summary>
        public const int MissileFieldNumber = 4;
        private static readonly pb::FieldCodec<Appearance> _repeated_missile_codec
            = pb::FieldCodec.ForMessage(34, Appearance.Parser);
        private readonly pbc::RepeatedField<Appearance> missile_ = new pbc::RepeatedField<Appearance>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<Appearance> Missile
        {
            get { return missile_; }
        }

        /// <summary>Field number for the "special_meaning_appearance_ids" field.</summary>
        public const int SpecialMeaningAppearanceIdsFieldNumber = 5;
        private SpecialMeaningAppearanceIds specialMeaningAppearanceIds_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpecialMeaningAppearanceIds SpecialMeaningAppearanceIds
        {
            get { return specialMeaningAppearanceIds_; }
            set
            {
                specialMeaningAppearanceIds_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as Appearances);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(Appearances other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (!Object.Equals(other.Object)) return false;
            if (!outfit_.Equals(other.outfit_)) return false;
            if (!effect_.Equals(other.effect_)) return false;
            if (!missile_.Equals(other.missile_)) return false;
            if (!object.Equals(SpecialMeaningAppearanceIds, other.SpecialMeaningAppearanceIds)) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            hash ^= Object.GetHashCode();
            hash ^= outfit_.GetHashCode();
            hash ^= effect_.GetHashCode();
            hash ^= missile_.GetHashCode();
            if (specialMeaningAppearanceIds_ != null) hash ^= SpecialMeaningAppearanceIds.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            Object.WriteTo(output, _repeated_object_codec);
            outfit_.WriteTo(output, _repeated_outfit_codec);
            effect_.WriteTo(output, _repeated_effect_codec);
            missile_.WriteTo(output, _repeated_missile_codec);
            if (specialMeaningAppearanceIds_ != null)
            {
                output.WriteRawTag(42);
                output.WriteMessage(SpecialMeaningAppearanceIds);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            size += Object.CalculateSize(_repeated_object_codec);
            size += outfit_.CalculateSize(_repeated_outfit_codec);
            size += effect_.CalculateSize(_repeated_effect_codec);
            size += missile_.CalculateSize(_repeated_missile_codec);
            if (specialMeaningAppearanceIds_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(SpecialMeaningAppearanceIds);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(Appearances other)
        {
            if (other == null)
            {
                return;
            }
            Object.Add(other.Object);
            outfit_.Add(other.outfit_);
            effect_.Add(other.effect_);
            missile_.Add(other.missile_);
            if (other.specialMeaningAppearanceIds_ != null)
            {
                if (specialMeaningAppearanceIds_ == null)
                {
                    specialMeaningAppearanceIds_ = new SpecialMeaningAppearanceIds();
                }
                SpecialMeaningAppearanceIds.MergeFrom(other.SpecialMeaningAppearanceIds);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 10:
                        {
                            Object.AddEntriesFrom(input, _repeated_object_codec);
                            break;
                        }
                    case 18:
                        {
                            outfit_.AddEntriesFrom(input, _repeated_outfit_codec);
                            break;
                        }
                    case 26:
                        {
                            effect_.AddEntriesFrom(input, _repeated_effect_codec);
                            break;
                        }
                    case 34:
                        {
                            missile_.AddEntriesFrom(input, _repeated_missile_codec);
                            break;
                        }
                    case 42:
                        {
                            if (specialMeaningAppearanceIds_ == null)
                            {
                                specialMeaningAppearanceIds_ = new SpecialMeaningAppearanceIds();
                            }
                            input.ReadMessage(specialMeaningAppearanceIds_);
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class SpritePhase : pb::IMessage<SpritePhase>
    {
        private static readonly pb::MessageParser<SpritePhase> _parser = new pb::MessageParser<SpritePhase>(() => new SpritePhase());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<SpritePhase> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[1]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpritePhase()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpritePhase(SpritePhase other) : this()
        {
            durationMin_ = other.durationMin_;
            durationMax_ = other.durationMax_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpritePhase Clone()
        {
            return new SpritePhase(this);
        }

        /// <summary>Field number for the "duration_min" field.</summary>
        public const int DurationMinFieldNumber = 1;
        private uint durationMin_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint DurationMin
        {
            get { return durationMin_; }
            set
            {
                durationMin_ = value;
            }
        }

        /// <summary>Field number for the "duration_max" field.</summary>
        public const int DurationMaxFieldNumber = 2;
        private uint durationMax_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint DurationMax
        {
            get { return durationMax_; }
            set
            {
                durationMax_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as SpritePhase);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(SpritePhase other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (DurationMin != other.DurationMin) return false;
            if (DurationMax != other.DurationMax) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (DurationMin != 0) hash ^= DurationMin.GetHashCode();
            if (DurationMax != 0) hash ^= DurationMax.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (DurationMin != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(DurationMin);
            }
            if (DurationMax != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(DurationMax);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (DurationMin != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DurationMin);
            }
            if (DurationMax != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DurationMax);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(SpritePhase other)
        {
            if (other == null)
            {
                return;
            }
            if (other.DurationMin != 0)
            {
                DurationMin = other.DurationMin;
            }
            if (other.DurationMax != 0)
            {
                DurationMax = other.DurationMax;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            DurationMin = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            DurationMax = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class SpriteAnimation : pb::IMessage<SpriteAnimation>
    {
        private static readonly pb::MessageParser<SpriteAnimation> _parser = new pb::MessageParser<SpriteAnimation>(() => new SpriteAnimation());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<SpriteAnimation> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[2]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteAnimation()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteAnimation(SpriteAnimation other) : this()
        {
            defaultStartPhase_ = other.defaultStartPhase_;
            synchronized_ = other.synchronized_;
            randomStartPhase_ = other.randomStartPhase_;
            loopType_ = other.loopType_;
            loopCount_ = other.loopCount_;
            spritePhase_ = other.spritePhase_.Clone();
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteAnimation Clone()
        {
            return new SpriteAnimation(this);
        }

        /// <summary>Field number for the "default_start_phase" field.</summary>
        public const int DefaultStartPhaseFieldNumber = 1;
        private uint defaultStartPhase_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint DefaultStartPhase
        {
            get { return defaultStartPhase_; }
            set
            {
                defaultStartPhase_ = value;
            }
        }

        /// <summary>Field number for the "synchronized" field.</summary>
        public const int SynchronizedFieldNumber = 2;
        private bool synchronized_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Synchronized
        {
            get { return synchronized_; }
            set
            {
                synchronized_ = value;
            }
        }

        /// <summary>Field number for the "random_start_phase" field.</summary>
        public const int RandomStartPhaseFieldNumber = 3;
        private bool randomStartPhase_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool RandomStartPhase
        {
            get { return randomStartPhase_; }
            set
            {
                randomStartPhase_ = value;
            }
        }

        /// <summary>Field number for the "loop_type" field.</summary>
        public const int LoopTypeFieldNumber = 4;
        private AnimationLoopType loopType_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AnimationLoopType LoopType
        {
            get { return loopType_; }
            set
            {
                loopType_ = value;
            }
        }

        /// <summary>Field number for the "loop_count" field.</summary>
        public const int LoopCountFieldNumber = 5;
        private uint loopCount_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint LoopCount
        {
            get { return loopCount_; }
            set
            {
                loopCount_ = value;
            }
        }

        /// <summary>Field number for the "sprite_phase" field.</summary>
        public const int SpritePhaseFieldNumber = 6;
        private static readonly pb::FieldCodec<SpritePhase> _repeated_spritePhase_codec
            = pb::FieldCodec.ForMessage(50, OXGaming.TibiaAPI.Utilities.SpritePhase.Parser);
        private readonly pbc::RepeatedField<SpritePhase> spritePhase_ = new pbc::RepeatedField<SpritePhase>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<SpritePhase> SpritePhase
        {
            get { return spritePhase_; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as SpriteAnimation);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(SpriteAnimation other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (DefaultStartPhase != other.DefaultStartPhase) return false;
            if (Synchronized != other.Synchronized) return false;
            if (RandomStartPhase != other.RandomStartPhase) return false;
            if (LoopType != other.LoopType) return false;
            if (LoopCount != other.LoopCount) return false;
            if (!spritePhase_.Equals(other.spritePhase_)) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (DefaultStartPhase != 0) hash ^= DefaultStartPhase.GetHashCode();
            if (Synchronized != false) hash ^= Synchronized.GetHashCode();
            if (RandomStartPhase != false) hash ^= RandomStartPhase.GetHashCode();
            if (LoopType != 0) hash ^= LoopType.GetHashCode();
            if (LoopCount != 0) hash ^= LoopCount.GetHashCode();
            hash ^= spritePhase_.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (DefaultStartPhase != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(DefaultStartPhase);
            }
            if (Synchronized != false)
            {
                output.WriteRawTag(16);
                output.WriteBool(Synchronized);
            }
            if (RandomStartPhase != false)
            {
                output.WriteRawTag(24);
                output.WriteBool(RandomStartPhase);
            }
            if (LoopType != 0)
            {
                output.WriteRawTag(32);
                output.WriteEnum((int)LoopType);
            }
            if (LoopCount != 0)
            {
                output.WriteRawTag(40);
                output.WriteUInt32(LoopCount);
            }
            spritePhase_.WriteTo(output, _repeated_spritePhase_codec);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (DefaultStartPhase != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DefaultStartPhase);
            }
            if (Synchronized != false)
            {
                size += 1 + 1;
            }
            if (RandomStartPhase != false)
            {
                size += 1 + 1;
            }
            if (LoopType != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)LoopType);
            }
            if (LoopCount != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LoopCount);
            }
            size += spritePhase_.CalculateSize(_repeated_spritePhase_codec);
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(SpriteAnimation other)
        {
            if (other == null)
            {
                return;
            }
            if (other.DefaultStartPhase != 0)
            {
                DefaultStartPhase = other.DefaultStartPhase;
            }
            if (other.Synchronized != false)
            {
                Synchronized = other.Synchronized;
            }
            if (other.RandomStartPhase != false)
            {
                RandomStartPhase = other.RandomStartPhase;
            }
            if (other.LoopType != 0)
            {
                LoopType = other.LoopType;
            }
            if (other.LoopCount != 0)
            {
                LoopCount = other.LoopCount;
            }
            spritePhase_.Add(other.spritePhase_);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            DefaultStartPhase = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            Synchronized = input.ReadBool();
                            break;
                        }
                    case 24:
                        {
                            RandomStartPhase = input.ReadBool();
                            break;
                        }
                    case 32:
                        {
                            loopType_ = (AnimationLoopType)input.ReadEnum();
                            break;
                        }
                    case 40:
                        {
                            LoopCount = input.ReadUInt32();
                            break;
                        }
                    case 50:
                        {
                            spritePhase_.AddEntriesFrom(input, _repeated_spritePhase_codec);
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class Box : pb::IMessage<Box>
    {
        private static readonly pb::MessageParser<Box> _parser = new pb::MessageParser<Box>(() => new Box());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<Box> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[3]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Box()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Box(Box other) : this()
        {
            x_ = other.x_;
            y_ = other.y_;
            width_ = other.width_;
            height_ = other.height_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Box Clone()
        {
            return new Box(this);
        }

        /// <summary>Field number for the "x" field.</summary>
        public const int XFieldNumber = 1;
        private uint x_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint X
        {
            get { return x_; }
            set
            {
                x_ = value;
            }
        }

        /// <summary>Field number for the "y" field.</summary>
        public const int YFieldNumber = 2;
        private uint y_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Y
        {
            get { return y_; }
            set
            {
                y_ = value;
            }
        }

        /// <summary>Field number for the "width" field.</summary>
        public const int WidthFieldNumber = 3;
        private uint width_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Width
        {
            get { return width_; }
            set
            {
                width_ = value;
            }
        }

        /// <summary>Field number for the "height" field.</summary>
        public const int HeightFieldNumber = 4;
        private uint height_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Height
        {
            get { return height_; }
            set
            {
                height_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as Box);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(Box other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (X != other.X) return false;
            if (Y != other.Y) return false;
            if (Width != other.Width) return false;
            if (Height != other.Height) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (X != 0) hash ^= X.GetHashCode();
            if (Y != 0) hash ^= Y.GetHashCode();
            if (Width != 0) hash ^= Width.GetHashCode();
            if (Height != 0) hash ^= Height.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (X != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(X);
            }
            if (Y != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(Y);
            }
            if (Width != 0)
            {
                output.WriteRawTag(24);
                output.WriteUInt32(Width);
            }
            if (Height != 0)
            {
                output.WriteRawTag(32);
                output.WriteUInt32(Height);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (X != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(X);
            }
            if (Y != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Y);
            }
            if (Width != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Width);
            }
            if (Height != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Height);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(Box other)
        {
            if (other == null)
            {
                return;
            }
            if (other.X != 0)
            {
                X = other.X;
            }
            if (other.Y != 0)
            {
                Y = other.Y;
            }
            if (other.Width != 0)
            {
                Width = other.Width;
            }
            if (other.Height != 0)
            {
                Height = other.Height;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            X = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            Y = input.ReadUInt32();
                            break;
                        }
                    case 24:
                        {
                            Width = input.ReadUInt32();
                            break;
                        }
                    case 32:
                        {
                            Height = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class SpriteInfo : pb::IMessage<SpriteInfo>
    {
        private static readonly pb::MessageParser<SpriteInfo> _parser = new pb::MessageParser<SpriteInfo>(() => new SpriteInfo());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<SpriteInfo> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[4]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteInfo()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteInfo(SpriteInfo other) : this()
        {
            patternWidth_ = other.patternWidth_;
            patternHeight_ = other.patternHeight_;
            patternDepth_ = other.patternDepth_;
            layers_ = other.layers_;
            spriteId_ = other.spriteId_.Clone();
            boundingSquare_ = other.boundingSquare_;
            Animation = other.animation_ != null ? other.Animation.Clone() : null;
            isOpaque_ = other.isOpaque_;
            boundingBoxPerDirection_ = other.boundingBoxPerDirection_.Clone();
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteInfo Clone()
        {
            return new SpriteInfo(this);
        }

        /// <summary>Field number for the "pattern_width" field.</summary>
        public const int PatternWidthFieldNumber = 1;
        private uint patternWidth_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint PatternWidth
        {
            get { return patternWidth_; }
            set
            {
                patternWidth_ = value;
            }
        }

        /// <summary>Field number for the "pattern_height" field.</summary>
        public const int PatternHeightFieldNumber = 2;
        private uint patternHeight_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint PatternHeight
        {
            get { return patternHeight_; }
            set
            {
                patternHeight_ = value;
            }
        }

        /// <summary>Field number for the "pattern_depth" field.</summary>
        public const int PatternDepthFieldNumber = 3;
        private uint patternDepth_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint PatternDepth
        {
            get { return patternDepth_; }
            set
            {
                patternDepth_ = value;
            }
        }

        /// <summary>Field number for the "layers" field.</summary>
        public const int LayersFieldNumber = 4;
        private uint layers_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Layers
        {
            get { return layers_; }
            set
            {
                layers_ = value;
            }
        }

        /// <summary>Field number for the "sprite_id" field.</summary>
        public const int SpriteIdFieldNumber = 5;
        private static readonly pb::FieldCodec<uint> _repeated_spriteId_codec
            = pb::FieldCodec.ForUInt32(42);
        private readonly pbc::RepeatedField<uint> spriteId_ = new pbc::RepeatedField<uint>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<uint> SpriteId
        {
            get { return spriteId_; }
        }

        /// <summary>Field number for the "bounding_square" field.</summary>
        public const int BoundingSquareFieldNumber = 7;
        private uint boundingSquare_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint BoundingSquare
        {
            get { return boundingSquare_; }
            set
            {
                boundingSquare_ = value;
            }
        }

        /// <summary>Field number for the "animation" field.</summary>
        public const int AnimationFieldNumber = 6;
        private SpriteAnimation animation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteAnimation Animation
        {
            get { return animation_; }
            set
            {
                animation_ = value;
            }
        }

        /// <summary>Field number for the "is_opaque" field.</summary>
        public const int IsOpaqueFieldNumber = 8;
        private bool isOpaque_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool IsOpaque
        {
            get { return isOpaque_; }
            set
            {
                isOpaque_ = value;
            }
        }

        /// <summary>Field number for the "bounding_box_per_direction" field.</summary>
        public const int BoundingBoxPerDirectionFieldNumber = 9;
        private static readonly pb::FieldCodec<Box> _repeated_boundingBoxPerDirection_codec
            = pb::FieldCodec.ForMessage(74, Box.Parser);
        private readonly pbc::RepeatedField<Box> boundingBoxPerDirection_ = new pbc::RepeatedField<Box>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<Box> BoundingBoxPerDirection
        {
            get { return boundingBoxPerDirection_; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as SpriteInfo);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(SpriteInfo other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (PatternWidth != other.PatternWidth) return false;
            if (PatternHeight != other.PatternHeight) return false;
            if (PatternDepth != other.PatternDepth) return false;
            if (Layers != other.Layers) return false;
            if (!spriteId_.Equals(other.spriteId_)) return false;
            if (BoundingSquare != other.BoundingSquare) return false;
            if (!object.Equals(Animation, other.Animation)) return false;
            if (IsOpaque != other.IsOpaque) return false;
            if (!boundingBoxPerDirection_.Equals(other.boundingBoxPerDirection_)) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (PatternWidth != 0) hash ^= PatternWidth.GetHashCode();
            if (PatternHeight != 0) hash ^= PatternHeight.GetHashCode();
            if (PatternDepth != 0) hash ^= PatternDepth.GetHashCode();
            if (Layers != 0) hash ^= Layers.GetHashCode();
            hash ^= spriteId_.GetHashCode();
            if (BoundingSquare != 0) hash ^= BoundingSquare.GetHashCode();
            if (animation_ != null) hash ^= Animation.GetHashCode();
            if (IsOpaque != false) hash ^= IsOpaque.GetHashCode();
            hash ^= boundingBoxPerDirection_.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (PatternWidth != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(PatternWidth);
            }
            if (PatternHeight != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(PatternHeight);
            }
            if (PatternDepth != 0)
            {
                output.WriteRawTag(24);
                output.WriteUInt32(PatternDepth);
            }
            if (Layers != 0)
            {
                output.WriteRawTag(32);
                output.WriteUInt32(Layers);
            }
            spriteId_.WriteTo(output, _repeated_spriteId_codec);
            if (animation_ != null)
            {
                output.WriteRawTag(50);
                output.WriteMessage(Animation);
            }
            if (BoundingSquare != 0)
            {
                output.WriteRawTag(56);
                output.WriteUInt32(BoundingSquare);
            }
            if (IsOpaque != false)
            {
                output.WriteRawTag(64);
                output.WriteBool(IsOpaque);
            }
            boundingBoxPerDirection_.WriteTo(output, _repeated_boundingBoxPerDirection_codec);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (PatternWidth != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PatternWidth);
            }
            if (PatternHeight != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PatternHeight);
            }
            if (PatternDepth != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PatternDepth);
            }
            if (Layers != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Layers);
            }
            size += spriteId_.CalculateSize(_repeated_spriteId_codec);
            if (BoundingSquare != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BoundingSquare);
            }
            if (animation_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(Animation);
            }
            if (IsOpaque != false)
            {
                size += 1 + 1;
            }
            size += boundingBoxPerDirection_.CalculateSize(_repeated_boundingBoxPerDirection_codec);
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(SpriteInfo other)
        {
            if (other == null)
            {
                return;
            }
            if (other.PatternWidth != 0)
            {
                PatternWidth = other.PatternWidth;
            }
            if (other.PatternHeight != 0)
            {
                PatternHeight = other.PatternHeight;
            }
            if (other.PatternDepth != 0)
            {
                PatternDepth = other.PatternDepth;
            }
            if (other.Layers != 0)
            {
                Layers = other.Layers;
            }
            spriteId_.Add(other.spriteId_);
            if (other.BoundingSquare != 0)
            {
                BoundingSquare = other.BoundingSquare;
            }
            if (other.animation_ != null)
            {
                if (animation_ == null)
                {
                    animation_ = new SpriteAnimation();
                }
                Animation.MergeFrom(other.Animation);
            }
            if (other.IsOpaque != false)
            {
                IsOpaque = other.IsOpaque;
            }
            boundingBoxPerDirection_.Add(other.boundingBoxPerDirection_);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            PatternWidth = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            PatternHeight = input.ReadUInt32();
                            break;
                        }
                    case 24:
                        {
                            PatternDepth = input.ReadUInt32();
                            break;
                        }
                    case 32:
                        {
                            Layers = input.ReadUInt32();
                            break;
                        }
                    case 42:
                    case 40:
                        {
                            spriteId_.AddEntriesFrom(input, _repeated_spriteId_codec);
                            break;
                        }
                    case 50:
                        {
                            if (animation_ == null)
                            {
                                animation_ = new SpriteAnimation();
                            }
                            input.ReadMessage(animation_);
                            break;
                        }
                    case 56:
                        {
                            BoundingSquare = input.ReadUInt32();
                            break;
                        }
                    case 64:
                        {
                            IsOpaque = input.ReadBool();
                            break;
                        }
                    case 74:
                        {
                            boundingBoxPerDirection_.AddEntriesFrom(input, _repeated_boundingBoxPerDirection_codec);
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class FrameGroup : pb::IMessage<FrameGroup>
    {
        private static readonly pb::MessageParser<FrameGroup> _parser = new pb::MessageParser<FrameGroup>(() => new FrameGroup());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<FrameGroup> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[5]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public FrameGroup()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public FrameGroup(FrameGroup other) : this()
        {
            fixedFrameGroup_ = other.fixedFrameGroup_;
            id_ = other.id_;
            SpriteInfo = other.spriteInfo_ != null ? other.SpriteInfo.Clone() : null;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public FrameGroup Clone()
        {
            return new FrameGroup(this);
        }

        /// <summary>Field number for the "fixed_frame_group" field.</summary>
        public const int FixedFrameGroupFieldNumber = 1;
        private FixedFrameGroup fixedFrameGroup_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public FixedFrameGroup FixedFrameGroup
        {
            get { return fixedFrameGroup_; }
            set
            {
                fixedFrameGroup_ = value;
            }
        }

        /// <summary>Field number for the "id" field.</summary>
        public const int IdFieldNumber = 2;
        private uint id_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Id
        {
            get { return id_; }
            set
            {
                id_ = value;
            }
        }

        /// <summary>Field number for the "sprite_info" field.</summary>
        public const int SpriteInfoFieldNumber = 3;
        private SpriteInfo spriteInfo_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpriteInfo SpriteInfo
        {
            get { return spriteInfo_; }
            set
            {
                spriteInfo_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as FrameGroup);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(FrameGroup other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (FixedFrameGroup != other.FixedFrameGroup) return false;
            if (Id != other.Id) return false;
            if (!object.Equals(SpriteInfo, other.SpriteInfo)) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (FixedFrameGroup != 0) hash ^= FixedFrameGroup.GetHashCode();
            if (Id != 0) hash ^= Id.GetHashCode();
            if (spriteInfo_ != null) hash ^= SpriteInfo.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (FixedFrameGroup != 0)
            {
                output.WriteRawTag(8);
                output.WriteEnum((int)FixedFrameGroup);
            }
            if (Id != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(Id);
            }
            if (spriteInfo_ != null)
            {
                output.WriteRawTag(26);
                output.WriteMessage(SpriteInfo);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (FixedFrameGroup != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)FixedFrameGroup);
            }
            if (Id != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
            }
            if (spriteInfo_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(SpriteInfo);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(FrameGroup other)
        {
            if (other == null)
            {
                return;
            }
            if (other.FixedFrameGroup != 0)
            {
                FixedFrameGroup = other.FixedFrameGroup;
            }
            if (other.Id != 0)
            {
                Id = other.Id;
            }
            if (other.spriteInfo_ != null)
            {
                if (spriteInfo_ == null)
                {
                    spriteInfo_ = new SpriteInfo();
                }
                SpriteInfo.MergeFrom(other.SpriteInfo);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            fixedFrameGroup_ = (FixedFrameGroup)input.ReadEnum();
                            break;
                        }
                    case 16:
                        {
                            Id = input.ReadUInt32();
                            break;
                        }
                    case 26:
                        {
                            if (spriteInfo_ == null)
                            {
                                spriteInfo_ = new SpriteInfo();
                            }
                            input.ReadMessage(spriteInfo_);
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class Appearance : pb::IMessage<Appearance>
    {
        private static readonly pb::MessageParser<Appearance> _parser = new pb::MessageParser<Appearance>(() => new Appearance());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<Appearance> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[6]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearance()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearance(Appearance other) : this()
        {
            id_ = other.id_;
            frameGroup_ = other.frameGroup_.Clone();
            Flags = other.flags_ != null ? other.Flags.Clone() : null;
            name_ = other.name_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public Appearance Clone()
        {
            return new Appearance(this);
        }

        /// <summary>Field number for the "id" field.</summary>
        public const int IdFieldNumber = 1;
        private uint id_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Id
        {
            get { return id_; }
            set
            {
                id_ = value;
            }
        }

        /// <summary>Field number for the "frame_group" field.</summary>
        public const int FrameGroupFieldNumber = 2;
        private static readonly pb::FieldCodec<FrameGroup> _repeated_frameGroup_codec
        = pb::FieldCodec.ForMessage(18, OXGaming.TibiaAPI.Utilities.FrameGroup.Parser);
        private readonly pbc::RepeatedField<FrameGroup> frameGroup_ = new pbc::RepeatedField<FrameGroup>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<FrameGroup> FrameGroup
        {
            get { return frameGroup_; }
        }

        /// <summary>Field number for the "flags" field.</summary>
        public const int FlagsFieldNumber = 3;
        private AppearanceFlags flags_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlags Flags
        {
            get { return flags_; }
            set
            {
                flags_ = value;
            }
        }

        /// <summary>Field number for the "name" field.</summary>
        public const int NameFieldNumber = 4;
        private string name_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string Name
        {
            get { return name_; }
            set
            {
                name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as Appearance);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(Appearance other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Id != other.Id) return false;
            if (!frameGroup_.Equals(other.frameGroup_)) return false;
            if (!object.Equals(Flags, other.Flags)) return false;
            if (Name != other.Name) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Id != 0) hash ^= Id.GetHashCode();
            hash ^= frameGroup_.GetHashCode();
            if (flags_ != null) hash ^= Flags.GetHashCode();
            if (Name.Length != 0) hash ^= Name.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Id != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Id);
            }
            frameGroup_.WriteTo(output, _repeated_frameGroup_codec);
            if (flags_ != null)
            {
                output.WriteRawTag(26);
                output.WriteMessage(Flags);
            }
            if (Name.Length != 0)
            {
                output.WriteRawTag(34);
                output.WriteString(Name);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Id != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
            }
            size += frameGroup_.CalculateSize(_repeated_frameGroup_codec);
            if (flags_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(Flags);
            }
            if (Name.Length != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(Appearance other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Id != 0)
            {
                Id = other.Id;
            }
            frameGroup_.Add(other.frameGroup_);
            if (other.flags_ != null)
            {
                if (flags_ == null)
                {
                    flags_ = new AppearanceFlags();
                }
                Flags.MergeFrom(other.Flags);
            }
            if (other.Name.Length != 0)
            {
                Name = other.Name;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Id = input.ReadUInt32();
                            break;
                        }
                    case 18:
                        {
                            frameGroup_.AddEntriesFrom(input, _repeated_frameGroup_codec);
                            break;
                        }
                    case 26:
                        {
                            if (flags_ == null)
                            {
                                flags_ = new AppearanceFlags();
                            }
                            input.ReadMessage(flags_);
                            break;
                        }
                    case 34:
                        {
                            Name = input.ReadString();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlags : pb::IMessage<AppearanceFlags>
    {
        private static readonly pb::MessageParser<AppearanceFlags> _parser = new pb::MessageParser<AppearanceFlags>(() => new AppearanceFlags());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlags> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[7]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlags()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlags(AppearanceFlags other) : this()
        {
            Bank = other.bank_ != null ? other.Bank.Clone() : null;
            clip_ = other.clip_;
            bottom_ = other.bottom_;
            top_ = other.top_;
            container_ = other.container_;
            cumulative_ = other.cumulative_;
            usable_ = other.usable_;
            forceuse_ = other.forceuse_;
            multiuse_ = other.multiuse_;
            Write = other.write_ != null ? other.Write.Clone() : null;
            WriteOnce = other.writeOnce_ != null ? other.WriteOnce.Clone() : null;
            liquidpool_ = other.liquidpool_;
            unpass_ = other.unpass_;
            unmove_ = other.unmove_;
            unsight_ = other.unsight_;
            avoid_ = other.avoid_;
            noMovementAnimation_ = other.noMovementAnimation_;
            take_ = other.take_;
            liquidcontainer_ = other.liquidcontainer_;
            hang_ = other.hang_;
            Hook = other.hook_ != null ? other.Hook.Clone() : null;
            rotate_ = other.rotate_;
            Light = other.light_ != null ? other.Light.Clone() : null;
            dontHide_ = other.dontHide_;
            translucent_ = other.translucent_;
            Shift = other.shift_ != null ? other.Shift.Clone() : null;
            Height = other.height_ != null ? other.Height.Clone() : null;
            lyingObject_ = other.lyingObject_;
            animateAlways_ = other.animateAlways_;
            Automap = other.automap_ != null ? other.Automap.Clone() : null;
            Lenshelp = other.lenshelp_ != null ? other.Lenshelp.Clone() : null;
            fullbank_ = other.fullbank_;
            ignoreLook_ = other.ignoreLook_;
            Clothes = other.clothes_ != null ? other.Clothes.Clone() : null;
            DefaultAction = other.defaultAction_ != null ? other.DefaultAction.Clone() : null;
            Market = other.market_ != null ? other.Market.Clone() : null;
            wrap_ = other.wrap_;
            unwrap_ = other.unwrap_;
            topeffect_ = other.topeffect_;
            npcsaledata_ = other.npcsaledata_.Clone();
            Changedtoexpire = other.changedtoexpire_ != null ? other.Changedtoexpire.Clone() : null;
            corpse_ = other.corpse_;
            playerCorpse_ = other.playerCorpse_;
            Cyclopediaitem = other.cyclopediaitem_ != null ? other.Cyclopediaitem.Clone() : null;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlags Clone()
        {
            return new AppearanceFlags(this);
        }

        /// <summary>Field number for the "bank" field.</summary>
        public const int BankFieldNumber = 1;
        private AppearanceFlagBank bank_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagBank Bank
        {
            get { return bank_; }
            set
            {
                bank_ = value;
            }
        }

        /// <summary>Field number for the "clip" field.</summary>
        public const int ClipFieldNumber = 2;
        private bool clip_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Clip
        {
            get { return clip_; }
            set
            {
                clip_ = value;
            }
        }

        /// <summary>Field number for the "bottom" field.</summary>
        public const int BottomFieldNumber = 3;
        private bool bottom_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Bottom
        {
            get { return bottom_; }
            set
            {
                bottom_ = value;
            }
        }

        /// <summary>Field number for the "top" field.</summary>
        public const int TopFieldNumber = 4;
        private bool top_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Top
        {
            get { return top_; }
            set
            {
                top_ = value;
            }
        }

        /// <summary>Field number for the "container" field.</summary>
        public const int ContainerFieldNumber = 5;
        private bool container_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Container
        {
            get { return container_; }
            set
            {
                container_ = value;
            }
        }

        /// <summary>Field number for the "cumulative" field.</summary>
        public const int CumulativeFieldNumber = 6;
        private bool cumulative_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Cumulative
        {
            get { return cumulative_; }
            set
            {
                cumulative_ = value;
            }
        }

        /// <summary>Field number for the "usable" field.</summary>
        public const int UsableFieldNumber = 7;
        private bool usable_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Usable
        {
            get { return usable_; }
            set
            {
                usable_ = value;
            }
        }

        /// <summary>Field number for the "forceuse" field.</summary>
        public const int ForceuseFieldNumber = 8;
        private bool forceuse_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Forceuse
        {
            get { return forceuse_; }
            set
            {
                forceuse_ = value;
            }
        }

        /// <summary>Field number for the "multiuse" field.</summary>
        public const int MultiuseFieldNumber = 9;
        private bool multiuse_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Multiuse
        {
            get { return multiuse_; }
            set
            {
                multiuse_ = value;
            }
        }

        /// <summary>Field number for the "write" field.</summary>
        public const int WriteFieldNumber = 10;
        private AppearanceFlagWrite write_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWrite Write
        {
            get { return write_; }
            set
            {
                write_ = value;
            }
        }

        /// <summary>Field number for the "write_once" field.</summary>
        public const int WriteOnceFieldNumber = 11;
        private AppearanceFlagWriteOnce writeOnce_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWriteOnce WriteOnce
        {
            get { return writeOnce_; }
            set
            {
                writeOnce_ = value;
            }
        }

        /// <summary>Field number for the "liquidpool" field.</summary>
        public const int LiquidpoolFieldNumber = 12;
        private bool liquidpool_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Liquidpool
        {
            get { return liquidpool_; }
            set
            {
                liquidpool_ = value;
            }
        }

        /// <summary>Field number for the "unpass" field.</summary>
        public const int UnpassFieldNumber = 13;
        private bool unpass_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Unpass
        {
            get { return unpass_; }
            set
            {
                unpass_ = value;
            }
        }

        /// <summary>Field number for the "unmove" field.</summary>
        public const int UnmoveFieldNumber = 14;
        private bool unmove_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Unmove
        {
            get { return unmove_; }
            set
            {
                unmove_ = value;
            }
        }

        /// <summary>Field number for the "unsight" field.</summary>
        public const int UnsightFieldNumber = 15;
        private bool unsight_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Unsight
        {
            get { return unsight_; }
            set
            {
                unsight_ = value;
            }
        }

        /// <summary>Field number for the "avoid" field.</summary>
        public const int AvoidFieldNumber = 16;
        private bool avoid_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Avoid
        {
            get { return avoid_; }
            set
            {
                avoid_ = value;
            }
        }

        /// <summary>Field number for the "no_movement_animation" field.</summary>
        public const int NoMovementAnimationFieldNumber = 17;
        private bool noMovementAnimation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool NoMovementAnimation
        {
            get { return noMovementAnimation_; }
            set
            {
                noMovementAnimation_ = value;
            }
        }

        /// <summary>Field number for the "take" field.</summary>
        public const int TakeFieldNumber = 18;
        private bool take_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Take
        {
            get { return take_; }
            set
            {
                take_ = value;
            }
        }

        /// <summary>Field number for the "liquidcontainer" field.</summary>
        public const int LiquidcontainerFieldNumber = 19;
        private bool liquidcontainer_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Liquidcontainer
        {
            get { return liquidcontainer_; }
            set
            {
                liquidcontainer_ = value;
            }
        }

        /// <summary>Field number for the "hang" field.</summary>
        public const int HangFieldNumber = 20;
        private bool hang_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Hang
        {
            get { return hang_; }
            set
            {
                hang_ = value;
            }
        }

        /// <summary>Field number for the "hook" field.</summary>
        public const int HookFieldNumber = 21;
        private AppearanceFlagHook hook_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHook Hook
        {
            get { return hook_; }
            set
            {
                hook_ = value;
            }
        }

        /// <summary>Field number for the "rotate" field.</summary>
        public const int RotateFieldNumber = 22;
        private bool rotate_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Rotate
        {
            get { return rotate_; }
            set
            {
                rotate_ = value;
            }
        }

        /// <summary>Field number for the "light" field.</summary>
        public const int LightFieldNumber = 23;
        private AppearanceFlagLight light_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLight Light
        {
            get { return light_; }
            set
            {
                light_ = value;
            }
        }

        /// <summary>Field number for the "dont_hide" field.</summary>
        public const int DontHideFieldNumber = 24;
        private bool dontHide_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool DontHide
        {
            get { return dontHide_; }
            set
            {
                dontHide_ = value;
            }
        }

        /// <summary>Field number for the "translucent" field.</summary>
        public const int TranslucentFieldNumber = 25;
        private bool translucent_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Translucent
        {
            get { return translucent_; }
            set
            {
                translucent_ = value;
            }
        }

        /// <summary>Field number for the "shift" field.</summary>
        public const int ShiftFieldNumber = 26;
        private AppearanceFlagShift shift_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagShift Shift
        {
            get { return shift_; }
            set
            {
                shift_ = value;
            }
        }

        /// <summary>Field number for the "height" field.</summary>
        public const int HeightFieldNumber = 27;
        private AppearanceFlagHeight height_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHeight Height
        {
            get { return height_; }
            set
            {
                height_ = value;
            }
        }

        /// <summary>Field number for the "lying_object" field.</summary>
        public const int LyingObjectFieldNumber = 28;
        private bool lyingObject_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool LyingObject
        {
            get { return lyingObject_; }
            set
            {
                lyingObject_ = value;
            }
        }

        /// <summary>Field number for the "animate_always" field.</summary>
        public const int AnimateAlwaysFieldNumber = 29;
        private bool animateAlways_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool AnimateAlways
        {
            get { return animateAlways_; }
            set
            {
                animateAlways_ = value;
            }
        }

        /// <summary>Field number for the "automap" field.</summary>
        public const int AutomapFieldNumber = 30;
        private AppearanceFlagAutomap automap_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagAutomap Automap
        {
            get { return automap_; }
            set
            {
                automap_ = value;
            }
        }

        /// <summary>Field number for the "lenshelp" field.</summary>
        public const int LenshelpFieldNumber = 31;
        private AppearanceFlagLenshelp lenshelp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLenshelp Lenshelp
        {
            get { return lenshelp_; }
            set
            {
                lenshelp_ = value;
            }
        }

        /// <summary>Field number for the "fullbank" field.</summary>
        public const int FullbankFieldNumber = 32;
        private bool fullbank_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Fullbank
        {
            get { return fullbank_; }
            set
            {
                fullbank_ = value;
            }
        }

        /// <summary>Field number for the "ignore_look" field.</summary>
        public const int IgnoreLookFieldNumber = 33;
        private bool ignoreLook_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool IgnoreLook
        {
            get { return ignoreLook_; }
            set
            {
                ignoreLook_ = value;
            }
        }

        /// <summary>Field number for the "clothes" field.</summary>
        public const int ClothesFieldNumber = 34;
        private AppearanceFlagClothes clothes_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagClothes Clothes
        {
            get { return clothes_; }
            set
            {
                clothes_ = value;
            }
        }

        /// <summary>Field number for the "default_action" field.</summary>
        public const int DefaultActionFieldNumber = 35;
        private AppearanceFlagDefaultAction defaultAction_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagDefaultAction DefaultAction
        {
            get { return defaultAction_; }
            set
            {
                defaultAction_ = value;
            }
        }

        /// <summary>Field number for the "market" field.</summary>
        public const int MarketFieldNumber = 36;
        private AppearanceFlagMarket market_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagMarket Market
        {
            get { return market_; }
            set
            {
                market_ = value;
            }
        }

        /// <summary>Field number for the "wrap" field.</summary>
        public const int WrapFieldNumber = 37;
        private bool wrap_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Wrap
        {
            get { return wrap_; }
            set
            {
                wrap_ = value;
            }
        }

        /// <summary>Field number for the "unwrap" field.</summary>
        public const int UnwrapFieldNumber = 38;
        private bool unwrap_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Unwrap
        {
            get { return unwrap_; }
            set
            {
                unwrap_ = value;
            }
        }

        /// <summary>Field number for the "topeffect" field.</summary>
        public const int TopeffectFieldNumber = 39;
        private bool topeffect_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Topeffect
        {
            get { return topeffect_; }
            set
            {
                topeffect_ = value;
            }
        }

        /// <summary>Field number for the "npcsaledata" field.</summary>
        public const int NpcsaledataFieldNumber = 40;
        private static readonly pb::FieldCodec<AppearanceFlagNPC> _repeated_npcsaledata_codec
            = pb::FieldCodec.ForMessage(322, AppearanceFlagNPC.Parser);
        private readonly pbc::RepeatedField<AppearanceFlagNPC> npcsaledata_ = new pbc::RepeatedField<AppearanceFlagNPC>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<AppearanceFlagNPC> Npcsaledata
        {
            get { return npcsaledata_; }
        }

        /// <summary>Field number for the "changedtoexpire" field.</summary>
        public const int ChangedtoexpireFieldNumber = 41;
        private AppearanceFlagChangedToExpire changedtoexpire_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagChangedToExpire Changedtoexpire
        {
            get { return changedtoexpire_; }
            set
            {
                changedtoexpire_ = value;
            }
        }

        /// <summary>Field number for the "corpse" field.</summary>
        public const int CorpseFieldNumber = 42;
        private bool corpse_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Corpse
        {
            get { return corpse_; }
            set
            {
                corpse_ = value;
            }
        }

        /// <summary>Field number for the "player_corpse" field.</summary>
        public const int PlayerCorpseFieldNumber = 43;
        private bool playerCorpse_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool PlayerCorpse
        {
            get { return playerCorpse_; }
            set
            {
                playerCorpse_ = value;
            }
        }

        /// <summary>Field number for the "cyclopediaitem" field.</summary>
        public const int CyclopediaitemFieldNumber = 44;
        private AppearanceFlagCyclopedia cyclopediaitem_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagCyclopedia Cyclopediaitem
        {
            get { return cyclopediaitem_; }
            set
            {
                cyclopediaitem_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlags);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlags other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (!object.Equals(Bank, other.Bank)) return false;
            if (Clip != other.Clip) return false;
            if (Bottom != other.Bottom) return false;
            if (Top != other.Top) return false;
            if (Container != other.Container) return false;
            if (Cumulative != other.Cumulative) return false;
            if (Usable != other.Usable) return false;
            if (Forceuse != other.Forceuse) return false;
            if (Multiuse != other.Multiuse) return false;
            if (!object.Equals(Write, other.Write)) return false;
            if (!object.Equals(WriteOnce, other.WriteOnce)) return false;
            if (Liquidpool != other.Liquidpool) return false;
            if (Unpass != other.Unpass) return false;
            if (Unmove != other.Unmove) return false;
            if (Unsight != other.Unsight) return false;
            if (Avoid != other.Avoid) return false;
            if (NoMovementAnimation != other.NoMovementAnimation) return false;
            if (Take != other.Take) return false;
            if (Liquidcontainer != other.Liquidcontainer) return false;
            if (Hang != other.Hang) return false;
            if (!object.Equals(Hook, other.Hook)) return false;
            if (Rotate != other.Rotate) return false;
            if (!object.Equals(Light, other.Light)) return false;
            if (DontHide != other.DontHide) return false;
            if (Translucent != other.Translucent) return false;
            if (!object.Equals(Shift, other.Shift)) return false;
            if (!object.Equals(Height, other.Height)) return false;
            if (LyingObject != other.LyingObject) return false;
            if (AnimateAlways != other.AnimateAlways) return false;
            if (!object.Equals(Automap, other.Automap)) return false;
            if (!object.Equals(Lenshelp, other.Lenshelp)) return false;
            if (Fullbank != other.Fullbank) return false;
            if (IgnoreLook != other.IgnoreLook) return false;
            if (!object.Equals(Clothes, other.Clothes)) return false;
            if (!object.Equals(DefaultAction, other.DefaultAction)) return false;
            if (!object.Equals(Market, other.Market)) return false;
            if (Wrap != other.Wrap) return false;
            if (Unwrap != other.Unwrap) return false;
            if (Topeffect != other.Topeffect) return false;
            if (!npcsaledata_.Equals(other.npcsaledata_)) return false;
            if (!object.Equals(Changedtoexpire, other.Changedtoexpire)) return false;
            if (Corpse != other.Corpse) return false;
            if (PlayerCorpse != other.PlayerCorpse) return false;
            if (!object.Equals(Cyclopediaitem, other.Cyclopediaitem)) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (bank_ != null) hash ^= Bank.GetHashCode();
            if (Clip != false) hash ^= Clip.GetHashCode();
            if (Bottom != false) hash ^= Bottom.GetHashCode();
            if (Top != false) hash ^= Top.GetHashCode();
            if (Container != false) hash ^= Container.GetHashCode();
            if (Cumulative != false) hash ^= Cumulative.GetHashCode();
            if (Usable != false) hash ^= Usable.GetHashCode();
            if (Forceuse != false) hash ^= Forceuse.GetHashCode();
            if (Multiuse != false) hash ^= Multiuse.GetHashCode();
            if (write_ != null) hash ^= Write.GetHashCode();
            if (writeOnce_ != null) hash ^= WriteOnce.GetHashCode();
            if (Liquidpool != false) hash ^= Liquidpool.GetHashCode();
            if (Unpass != false) hash ^= Unpass.GetHashCode();
            if (Unmove != false) hash ^= Unmove.GetHashCode();
            if (Unsight != false) hash ^= Unsight.GetHashCode();
            if (Avoid != false) hash ^= Avoid.GetHashCode();
            if (NoMovementAnimation != false) hash ^= NoMovementAnimation.GetHashCode();
            if (Take != false) hash ^= Take.GetHashCode();
            if (Liquidcontainer != false) hash ^= Liquidcontainer.GetHashCode();
            if (Hang != false) hash ^= Hang.GetHashCode();
            if (hook_ != null) hash ^= Hook.GetHashCode();
            if (Rotate != false) hash ^= Rotate.GetHashCode();
            if (light_ != null) hash ^= Light.GetHashCode();
            if (DontHide != false) hash ^= DontHide.GetHashCode();
            if (Translucent != false) hash ^= Translucent.GetHashCode();
            if (shift_ != null) hash ^= Shift.GetHashCode();
            if (height_ != null) hash ^= Height.GetHashCode();
            if (LyingObject != false) hash ^= LyingObject.GetHashCode();
            if (AnimateAlways != false) hash ^= AnimateAlways.GetHashCode();
            if (automap_ != null) hash ^= Automap.GetHashCode();
            if (lenshelp_ != null) hash ^= Lenshelp.GetHashCode();
            if (Fullbank != false) hash ^= Fullbank.GetHashCode();
            if (IgnoreLook != false) hash ^= IgnoreLook.GetHashCode();
            if (clothes_ != null) hash ^= Clothes.GetHashCode();
            if (defaultAction_ != null) hash ^= DefaultAction.GetHashCode();
            if (market_ != null) hash ^= Market.GetHashCode();
            if (Wrap != false) hash ^= Wrap.GetHashCode();
            if (Unwrap != false) hash ^= Unwrap.GetHashCode();
            if (Topeffect != false) hash ^= Topeffect.GetHashCode();
            hash ^= npcsaledata_.GetHashCode();
            if (changedtoexpire_ != null) hash ^= Changedtoexpire.GetHashCode();
            if (Corpse != false) hash ^= Corpse.GetHashCode();
            if (PlayerCorpse != false) hash ^= PlayerCorpse.GetHashCode();
            if (cyclopediaitem_ != null) hash ^= Cyclopediaitem.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (bank_ != null)
            {
                output.WriteRawTag(10);
                output.WriteMessage(Bank);
            }
            if (Clip != false)
            {
                output.WriteRawTag(16);
                output.WriteBool(Clip);
            }
            if (Bottom != false)
            {
                output.WriteRawTag(24);
                output.WriteBool(Bottom);
            }
            if (Top != false)
            {
                output.WriteRawTag(32);
                output.WriteBool(Top);
            }
            if (Container != false)
            {
                output.WriteRawTag(40);
                output.WriteBool(Container);
            }
            if (Cumulative != false)
            {
                output.WriteRawTag(48);
                output.WriteBool(Cumulative);
            }
            if (Usable != false)
            {
                output.WriteRawTag(56);
                output.WriteBool(Usable);
            }
            if (Forceuse != false)
            {
                output.WriteRawTag(64);
                output.WriteBool(Forceuse);
            }
            if (Multiuse != false)
            {
                output.WriteRawTag(72);
                output.WriteBool(Multiuse);
            }
            if (write_ != null)
            {
                output.WriteRawTag(82);
                output.WriteMessage(Write);
            }
            if (writeOnce_ != null)
            {
                output.WriteRawTag(90);
                output.WriteMessage(WriteOnce);
            }
            if (Liquidpool != false)
            {
                output.WriteRawTag(96);
                output.WriteBool(Liquidpool);
            }
            if (Unpass != false)
            {
                output.WriteRawTag(104);
                output.WriteBool(Unpass);
            }
            if (Unmove != false)
            {
                output.WriteRawTag(112);
                output.WriteBool(Unmove);
            }
            if (Unsight != false)
            {
                output.WriteRawTag(120);
                output.WriteBool(Unsight);
            }
            if (Avoid != false)
            {
                output.WriteRawTag(128, 1);
                output.WriteBool(Avoid);
            }
            if (NoMovementAnimation != false)
            {
                output.WriteRawTag(136, 1);
                output.WriteBool(NoMovementAnimation);
            }
            if (Take != false)
            {
                output.WriteRawTag(144, 1);
                output.WriteBool(Take);
            }
            if (Liquidcontainer != false)
            {
                output.WriteRawTag(152, 1);
                output.WriteBool(Liquidcontainer);
            }
            if (Hang != false)
            {
                output.WriteRawTag(160, 1);
                output.WriteBool(Hang);
            }
            if (hook_ != null)
            {
                output.WriteRawTag(170, 1);
                output.WriteMessage(Hook);
            }
            if (Rotate != false)
            {
                output.WriteRawTag(176, 1);
                output.WriteBool(Rotate);
            }
            if (light_ != null)
            {
                output.WriteRawTag(186, 1);
                output.WriteMessage(Light);
            }
            if (DontHide != false)
            {
                output.WriteRawTag(192, 1);
                output.WriteBool(DontHide);
            }
            if (Translucent != false)
            {
                output.WriteRawTag(200, 1);
                output.WriteBool(Translucent);
            }
            if (shift_ != null)
            {
                output.WriteRawTag(210, 1);
                output.WriteMessage(Shift);
            }
            if (height_ != null)
            {
                output.WriteRawTag(218, 1);
                output.WriteMessage(Height);
            }
            if (LyingObject != false)
            {
                output.WriteRawTag(224, 1);
                output.WriteBool(LyingObject);
            }
            if (AnimateAlways != false)
            {
                output.WriteRawTag(232, 1);
                output.WriteBool(AnimateAlways);
            }
            if (automap_ != null)
            {
                output.WriteRawTag(242, 1);
                output.WriteMessage(Automap);
            }
            if (lenshelp_ != null)
            {
                output.WriteRawTag(250, 1);
                output.WriteMessage(Lenshelp);
            }
            if (Fullbank != false)
            {
                output.WriteRawTag(128, 2);
                output.WriteBool(Fullbank);
            }
            if (IgnoreLook != false)
            {
                output.WriteRawTag(136, 2);
                output.WriteBool(IgnoreLook);
            }
            if (clothes_ != null)
            {
                output.WriteRawTag(146, 2);
                output.WriteMessage(Clothes);
            }
            if (defaultAction_ != null)
            {
                output.WriteRawTag(154, 2);
                output.WriteMessage(DefaultAction);
            }
            if (market_ != null)
            {
                output.WriteRawTag(162, 2);
                output.WriteMessage(Market);
            }
            if (Wrap != false)
            {
                output.WriteRawTag(168, 2);
                output.WriteBool(Wrap);
            }
            if (Unwrap != false)
            {
                output.WriteRawTag(176, 2);
                output.WriteBool(Unwrap);
            }
            if (Topeffect != false)
            {
                output.WriteRawTag(184, 2);
                output.WriteBool(Topeffect);
            }
            npcsaledata_.WriteTo(output, _repeated_npcsaledata_codec);
            if (changedtoexpire_ != null)
            {
                output.WriteRawTag(202, 2);
                output.WriteMessage(Changedtoexpire);
            }
            if (Corpse != false)
            {
                output.WriteRawTag(208, 2);
                output.WriteBool(Corpse);
            }
            if (PlayerCorpse != false)
            {
                output.WriteRawTag(216, 2);
                output.WriteBool(PlayerCorpse);
            }
            if (cyclopediaitem_ != null)
            {
                output.WriteRawTag(226, 2);
                output.WriteMessage(Cyclopediaitem);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (bank_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bank);
            }
            if (Clip != false)
            {
                size += 1 + 1;
            }
            if (Bottom != false)
            {
                size += 1 + 1;
            }
            if (Top != false)
            {
                size += 1 + 1;
            }
            if (Container != false)
            {
                size += 1 + 1;
            }
            if (Cumulative != false)
            {
                size += 1 + 1;
            }
            if (Usable != false)
            {
                size += 1 + 1;
            }
            if (Forceuse != false)
            {
                size += 1 + 1;
            }
            if (Multiuse != false)
            {
                size += 1 + 1;
            }
            if (write_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(Write);
            }
            if (writeOnce_ != null)
            {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(WriteOnce);
            }
            if (Liquidpool != false)
            {
                size += 1 + 1;
            }
            if (Unpass != false)
            {
                size += 1 + 1;
            }
            if (Unmove != false)
            {
                size += 1 + 1;
            }
            if (Unsight != false)
            {
                size += 1 + 1;
            }
            if (Avoid != false)
            {
                size += 2 + 1;
            }
            if (NoMovementAnimation != false)
            {
                size += 2 + 1;
            }
            if (Take != false)
            {
                size += 2 + 1;
            }
            if (Liquidcontainer != false)
            {
                size += 2 + 1;
            }
            if (Hang != false)
            {
                size += 2 + 1;
            }
            if (hook_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Hook);
            }
            if (Rotate != false)
            {
                size += 2 + 1;
            }
            if (light_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Light);
            }
            if (DontHide != false)
            {
                size += 2 + 1;
            }
            if (Translucent != false)
            {
                size += 2 + 1;
            }
            if (shift_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Shift);
            }
            if (height_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Height);
            }
            if (LyingObject != false)
            {
                size += 2 + 1;
            }
            if (AnimateAlways != false)
            {
                size += 2 + 1;
            }
            if (automap_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Automap);
            }
            if (lenshelp_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Lenshelp);
            }
            if (Fullbank != false)
            {
                size += 2 + 1;
            }
            if (IgnoreLook != false)
            {
                size += 2 + 1;
            }
            if (clothes_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Clothes);
            }
            if (defaultAction_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(DefaultAction);
            }
            if (market_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Market);
            }
            if (Wrap != false)
            {
                size += 2 + 1;
            }
            if (Unwrap != false)
            {
                size += 2 + 1;
            }
            if (Topeffect != false)
            {
                size += 2 + 1;
            }
            size += npcsaledata_.CalculateSize(_repeated_npcsaledata_codec);
            if (changedtoexpire_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Changedtoexpire);
            }
            if (Corpse != false)
            {
                size += 2 + 1;
            }
            if (PlayerCorpse != false)
            {
                size += 2 + 1;
            }
            if (cyclopediaitem_ != null)
            {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(Cyclopediaitem);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlags other)
        {
            if (other == null)
            {
                return;
            }
            if (other.bank_ != null)
            {
                if (bank_ == null)
                {
                    bank_ = new AppearanceFlagBank();
                }
                Bank.MergeFrom(other.Bank);
            }
            if (other.Clip != false)
            {
                Clip = other.Clip;
            }
            if (other.Bottom != false)
            {
                Bottom = other.Bottom;
            }
            if (other.Top != false)
            {
                Top = other.Top;
            }
            if (other.Container != false)
            {
                Container = other.Container;
            }
            if (other.Cumulative != false)
            {
                Cumulative = other.Cumulative;
            }
            if (other.Usable != false)
            {
                Usable = other.Usable;
            }
            if (other.Forceuse != false)
            {
                Forceuse = other.Forceuse;
            }
            if (other.Multiuse != false)
            {
                Multiuse = other.Multiuse;
            }
            if (other.write_ != null)
            {
                if (write_ == null)
                {
                    write_ = new AppearanceFlagWrite();
                }
                Write.MergeFrom(other.Write);
            }
            if (other.writeOnce_ != null)
            {
                if (writeOnce_ == null)
                {
                    writeOnce_ = new AppearanceFlagWriteOnce();
                }
                WriteOnce.MergeFrom(other.WriteOnce);
            }
            if (other.Liquidpool != false)
            {
                Liquidpool = other.Liquidpool;
            }
            if (other.Unpass != false)
            {
                Unpass = other.Unpass;
            }
            if (other.Unmove != false)
            {
                Unmove = other.Unmove;
            }
            if (other.Unsight != false)
            {
                Unsight = other.Unsight;
            }
            if (other.Avoid != false)
            {
                Avoid = other.Avoid;
            }
            if (other.NoMovementAnimation != false)
            {
                NoMovementAnimation = other.NoMovementAnimation;
            }
            if (other.Take != false)
            {
                Take = other.Take;
            }
            if (other.Liquidcontainer != false)
            {
                Liquidcontainer = other.Liquidcontainer;
            }
            if (other.Hang != false)
            {
                Hang = other.Hang;
            }
            if (other.hook_ != null)
            {
                if (hook_ == null)
                {
                    hook_ = new AppearanceFlagHook();
                }
                Hook.MergeFrom(other.Hook);
            }
            if (other.Rotate != false)
            {
                Rotate = other.Rotate;
            }
            if (other.light_ != null)
            {
                if (light_ == null)
                {
                    light_ = new AppearanceFlagLight();
                }
                Light.MergeFrom(other.Light);
            }
            if (other.DontHide != false)
            {
                DontHide = other.DontHide;
            }
            if (other.Translucent != false)
            {
                Translucent = other.Translucent;
            }
            if (other.shift_ != null)
            {
                if (shift_ == null)
                {
                    shift_ = new AppearanceFlagShift();
                }
                Shift.MergeFrom(other.Shift);
            }
            if (other.height_ != null)
            {
                if (height_ == null)
                {
                    height_ = new AppearanceFlagHeight();
                }
                Height.MergeFrom(other.Height);
            }
            if (other.LyingObject != false)
            {
                LyingObject = other.LyingObject;
            }
            if (other.AnimateAlways != false)
            {
                AnimateAlways = other.AnimateAlways;
            }
            if (other.automap_ != null)
            {
                if (automap_ == null)
                {
                    automap_ = new AppearanceFlagAutomap();
                }
                Automap.MergeFrom(other.Automap);
            }
            if (other.lenshelp_ != null)
            {
                if (lenshelp_ == null)
                {
                    lenshelp_ = new AppearanceFlagLenshelp();
                }
                Lenshelp.MergeFrom(other.Lenshelp);
            }
            if (other.Fullbank != false)
            {
                Fullbank = other.Fullbank;
            }
            if (other.IgnoreLook != false)
            {
                IgnoreLook = other.IgnoreLook;
            }
            if (other.clothes_ != null)
            {
                if (clothes_ == null)
                {
                    clothes_ = new AppearanceFlagClothes();
                }
                Clothes.MergeFrom(other.Clothes);
            }
            if (other.defaultAction_ != null)
            {
                if (defaultAction_ == null)
                {
                    defaultAction_ = new AppearanceFlagDefaultAction();
                }
                DefaultAction.MergeFrom(other.DefaultAction);
            }
            if (other.market_ != null)
            {
                if (market_ == null)
                {
                    market_ = new AppearanceFlagMarket();
                }
                Market.MergeFrom(other.Market);
            }
            if (other.Wrap != false)
            {
                Wrap = other.Wrap;
            }
            if (other.Unwrap != false)
            {
                Unwrap = other.Unwrap;
            }
            if (other.Topeffect != false)
            {
                Topeffect = other.Topeffect;
            }
            npcsaledata_.Add(other.npcsaledata_);
            if (other.changedtoexpire_ != null)
            {
                if (changedtoexpire_ == null)
                {
                    changedtoexpire_ = new AppearanceFlagChangedToExpire();
                }
                Changedtoexpire.MergeFrom(other.Changedtoexpire);
            }
            if (other.Corpse != false)
            {
                Corpse = other.Corpse;
            }
            if (other.PlayerCorpse != false)
            {
                PlayerCorpse = other.PlayerCorpse;
            }
            if (other.cyclopediaitem_ != null)
            {
                if (cyclopediaitem_ == null)
                {
                    cyclopediaitem_ = new AppearanceFlagCyclopedia();
                }
                Cyclopediaitem.MergeFrom(other.Cyclopediaitem);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 10:
                        {
                            if (bank_ == null)
                            {
                                bank_ = new AppearanceFlagBank();
                            }
                            input.ReadMessage(bank_);
                            break;
                        }
                    case 16:
                        {
                            Clip = input.ReadBool();
                            break;
                        }
                    case 24:
                        {
                            Bottom = input.ReadBool();
                            break;
                        }
                    case 32:
                        {
                            Top = input.ReadBool();
                            break;
                        }
                    case 40:
                        {
                            Container = input.ReadBool();
                            break;
                        }
                    case 48:
                        {
                            Cumulative = input.ReadBool();
                            break;
                        }
                    case 56:
                        {
                            Usable = input.ReadBool();
                            break;
                        }
                    case 64:
                        {
                            Forceuse = input.ReadBool();
                            break;
                        }
                    case 72:
                        {
                            Multiuse = input.ReadBool();
                            break;
                        }
                    case 82:
                        {
                            if (write_ == null)
                            {
                                write_ = new AppearanceFlagWrite();
                            }
                            input.ReadMessage(write_);
                            break;
                        }
                    case 90:
                        {
                            if (writeOnce_ == null)
                            {
                                writeOnce_ = new AppearanceFlagWriteOnce();
                            }
                            input.ReadMessage(writeOnce_);
                            break;
                        }
                    case 96:
                        {
                            Liquidpool = input.ReadBool();
                            break;
                        }
                    case 104:
                        {
                            Unpass = input.ReadBool();
                            break;
                        }
                    case 112:
                        {
                            Unmove = input.ReadBool();
                            break;
                        }
                    case 120:
                        {
                            Unsight = input.ReadBool();
                            break;
                        }
                    case 128:
                        {
                            Avoid = input.ReadBool();
                            break;
                        }
                    case 136:
                        {
                            NoMovementAnimation = input.ReadBool();
                            break;
                        }
                    case 144:
                        {
                            Take = input.ReadBool();
                            break;
                        }
                    case 152:
                        {
                            Liquidcontainer = input.ReadBool();
                            break;
                        }
                    case 160:
                        {
                            Hang = input.ReadBool();
                            break;
                        }
                    case 170:
                        {
                            if (hook_ == null)
                            {
                                hook_ = new AppearanceFlagHook();
                            }
                            input.ReadMessage(hook_);
                            break;
                        }
                    case 176:
                        {
                            Rotate = input.ReadBool();
                            break;
                        }
                    case 186:
                        {
                            if (light_ == null)
                            {
                                light_ = new AppearanceFlagLight();
                            }
                            input.ReadMessage(light_);
                            break;
                        }
                    case 192:
                        {
                            DontHide = input.ReadBool();
                            break;
                        }
                    case 200:
                        {
                            Translucent = input.ReadBool();
                            break;
                        }
                    case 210:
                        {
                            if (shift_ == null)
                            {
                                shift_ = new AppearanceFlagShift();
                            }
                            input.ReadMessage(shift_);
                            break;
                        }
                    case 218:
                        {
                            if (height_ == null)
                            {
                                height_ = new AppearanceFlagHeight();
                            }
                            input.ReadMessage(height_);
                            break;
                        }
                    case 224:
                        {
                            LyingObject = input.ReadBool();
                            break;
                        }
                    case 232:
                        {
                            AnimateAlways = input.ReadBool();
                            break;
                        }
                    case 242:
                        {
                            if (automap_ == null)
                            {
                                automap_ = new AppearanceFlagAutomap();
                            }
                            input.ReadMessage(automap_);
                            break;
                        }
                    case 250:
                        {
                            if (lenshelp_ == null)
                            {
                                lenshelp_ = new AppearanceFlagLenshelp();
                            }
                            input.ReadMessage(lenshelp_);
                            break;
                        }
                    case 256:
                        {
                            Fullbank = input.ReadBool();
                            break;
                        }
                    case 264:
                        {
                            IgnoreLook = input.ReadBool();
                            break;
                        }
                    case 274:
                        {
                            if (clothes_ == null)
                            {
                                clothes_ = new AppearanceFlagClothes();
                            }
                            input.ReadMessage(clothes_);
                            break;
                        }
                    case 282:
                        {
                            if (defaultAction_ == null)
                            {
                                defaultAction_ = new AppearanceFlagDefaultAction();
                            }
                            input.ReadMessage(defaultAction_);
                            break;
                        }
                    case 290:
                        {
                            if (market_ == null)
                            {
                                market_ = new AppearanceFlagMarket();
                            }
                            input.ReadMessage(market_);
                            break;
                        }
                    case 296:
                        {
                            Wrap = input.ReadBool();
                            break;
                        }
                    case 304:
                        {
                            Unwrap = input.ReadBool();
                            break;
                        }
                    case 312:
                        {
                            Topeffect = input.ReadBool();
                            break;
                        }
                    case 322:
                        {
                            npcsaledata_.AddEntriesFrom(input, _repeated_npcsaledata_codec);
                            break;
                        }
                    case 330:
                        {
                            if (changedtoexpire_ == null)
                            {
                                changedtoexpire_ = new AppearanceFlagChangedToExpire();
                            }
                            input.ReadMessage(changedtoexpire_);
                            break;
                        }
                    case 336:
                        {
                            Corpse = input.ReadBool();
                            break;
                        }
                    case 344:
                        {
                            PlayerCorpse = input.ReadBool();
                            break;
                        }
                    case 354:
                        {
                            if (cyclopediaitem_ == null)
                            {
                                cyclopediaitem_ = new AppearanceFlagCyclopedia();
                            }
                            input.ReadMessage(cyclopediaitem_);
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagBank : pb::IMessage<AppearanceFlagBank>
    {
        private static readonly pb::MessageParser<AppearanceFlagBank> _parser = new pb::MessageParser<AppearanceFlagBank>(() => new AppearanceFlagBank());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagBank> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[8]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagBank()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagBank(AppearanceFlagBank other) : this()
        {
            waypoints_ = other.waypoints_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagBank Clone()
        {
            return new AppearanceFlagBank(this);
        }

        /// <summary>Field number for the "waypoints" field.</summary>
        public const int WaypointsFieldNumber = 1;
        private uint waypoints_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Waypoints
        {
            get { return waypoints_; }
            set
            {
                waypoints_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagBank);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagBank other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Waypoints != other.Waypoints) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Waypoints != 0) hash ^= Waypoints.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Waypoints != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Waypoints);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Waypoints != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Waypoints);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagBank other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Waypoints != 0)
            {
                Waypoints = other.Waypoints;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Waypoints = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagWrite : pb::IMessage<AppearanceFlagWrite>
    {
        private static readonly pb::MessageParser<AppearanceFlagWrite> _parser = new pb::MessageParser<AppearanceFlagWrite>(() => new AppearanceFlagWrite());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagWrite> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[9]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWrite()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWrite(AppearanceFlagWrite other) : this()
        {
            maxTextLength_ = other.maxTextLength_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWrite Clone()
        {
            return new AppearanceFlagWrite(this);
        }

        /// <summary>Field number for the "max_text_length" field.</summary>
        public const int MaxTextLengthFieldNumber = 1;
        private uint maxTextLength_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint MaxTextLength
        {
            get { return maxTextLength_; }
            set
            {
                maxTextLength_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagWrite);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagWrite other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (MaxTextLength != other.MaxTextLength) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (MaxTextLength != 0) hash ^= MaxTextLength.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (MaxTextLength != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(MaxTextLength);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (MaxTextLength != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MaxTextLength);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagWrite other)
        {
            if (other == null)
            {
                return;
            }
            if (other.MaxTextLength != 0)
            {
                MaxTextLength = other.MaxTextLength;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            MaxTextLength = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagWriteOnce : pb::IMessage<AppearanceFlagWriteOnce>
    {
        private static readonly pb::MessageParser<AppearanceFlagWriteOnce> _parser = new pb::MessageParser<AppearanceFlagWriteOnce>(() => new AppearanceFlagWriteOnce());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagWriteOnce> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[10]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWriteOnce()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWriteOnce(AppearanceFlagWriteOnce other) : this()
        {
            maxTextLengthOnce_ = other.maxTextLengthOnce_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagWriteOnce Clone()
        {
            return new AppearanceFlagWriteOnce(this);
        }

        /// <summary>Field number for the "max_text_length_once" field.</summary>
        public const int MaxTextLengthOnceFieldNumber = 1;
        private uint maxTextLengthOnce_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint MaxTextLengthOnce
        {
            get { return maxTextLengthOnce_; }
            set
            {
                maxTextLengthOnce_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagWriteOnce);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagWriteOnce other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (MaxTextLengthOnce != other.MaxTextLengthOnce) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (MaxTextLengthOnce != 0) hash ^= MaxTextLengthOnce.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (MaxTextLengthOnce != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(MaxTextLengthOnce);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (MaxTextLengthOnce != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MaxTextLengthOnce);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagWriteOnce other)
        {
            if (other == null)
            {
                return;
            }
            if (other.MaxTextLengthOnce != 0)
            {
                MaxTextLengthOnce = other.MaxTextLengthOnce;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            MaxTextLengthOnce = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagLight : pb::IMessage<AppearanceFlagLight>
    {
        private static readonly pb::MessageParser<AppearanceFlagLight> _parser = new pb::MessageParser<AppearanceFlagLight>(() => new AppearanceFlagLight());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagLight> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[11]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLight()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLight(AppearanceFlagLight other) : this()
        {
            brightness_ = other.brightness_;
            color_ = other.color_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLight Clone()
        {
            return new AppearanceFlagLight(this);
        }

        /// <summary>Field number for the "brightness" field.</summary>
        public const int BrightnessFieldNumber = 1;
        private uint brightness_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Brightness
        {
            get { return brightness_; }
            set
            {
                brightness_ = value;
            }
        }

        /// <summary>Field number for the "color" field.</summary>
        public const int ColorFieldNumber = 2;
        private uint color_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Color
        {
            get { return color_; }
            set
            {
                color_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagLight);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagLight other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Brightness != other.Brightness) return false;
            if (Color != other.Color) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Brightness != 0) hash ^= Brightness.GetHashCode();
            if (Color != 0) hash ^= Color.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Brightness != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Brightness);
            }
            if (Color != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(Color);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Brightness != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Brightness);
            }
            if (Color != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Color);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagLight other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Brightness != 0)
            {
                Brightness = other.Brightness;
            }
            if (other.Color != 0)
            {
                Color = other.Color;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Brightness = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            Color = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagHeight : pb::IMessage<AppearanceFlagHeight>
    {
        private static readonly pb::MessageParser<AppearanceFlagHeight> _parser = new pb::MessageParser<AppearanceFlagHeight>(() => new AppearanceFlagHeight());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagHeight> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[12]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHeight()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHeight(AppearanceFlagHeight other) : this()
        {
            elevation_ = other.elevation_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHeight Clone()
        {
            return new AppearanceFlagHeight(this);
        }

        /// <summary>Field number for the "elevation" field.</summary>
        public const int ElevationFieldNumber = 1;
        private uint elevation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Elevation
        {
            get { return elevation_; }
            set
            {
                elevation_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagHeight);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagHeight other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Elevation != other.Elevation) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Elevation != 0) hash ^= Elevation.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Elevation != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Elevation);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Elevation != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Elevation);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagHeight other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Elevation != 0)
            {
                Elevation = other.Elevation;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Elevation = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagShift : pb::IMessage<AppearanceFlagShift>
    {
        private static readonly pb::MessageParser<AppearanceFlagShift> _parser = new pb::MessageParser<AppearanceFlagShift>(() => new AppearanceFlagShift());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagShift> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[13]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagShift()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagShift(AppearanceFlagShift other) : this()
        {
            x_ = other.x_;
            y_ = other.y_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagShift Clone()
        {
            return new AppearanceFlagShift(this);
        }

        /// <summary>Field number for the "x" field.</summary>
        public const int XFieldNumber = 1;
        private uint x_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint X
        {
            get { return x_; }
            set
            {
                x_ = value;
            }
        }

        /// <summary>Field number for the "y" field.</summary>
        public const int YFieldNumber = 2;
        private uint y_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Y
        {
            get { return y_; }
            set
            {
                y_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagShift);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagShift other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (X != other.X) return false;
            if (Y != other.Y) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (X != 0) hash ^= X.GetHashCode();
            if (Y != 0) hash ^= Y.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (X != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(X);
            }
            if (Y != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(Y);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (X != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(X);
            }
            if (Y != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Y);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagShift other)
        {
            if (other == null)
            {
                return;
            }
            if (other.X != 0)
            {
                X = other.X;
            }
            if (other.Y != 0)
            {
                Y = other.Y;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            X = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            Y = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagClothes : pb::IMessage<AppearanceFlagClothes>
    {
        private static readonly pb::MessageParser<AppearanceFlagClothes> _parser = new pb::MessageParser<AppearanceFlagClothes>(() => new AppearanceFlagClothes());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagClothes> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[14]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagClothes()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagClothes(AppearanceFlagClothes other) : this()
        {
            slot_ = other.slot_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagClothes Clone()
        {
            return new AppearanceFlagClothes(this);
        }

        /// <summary>Field number for the "slot" field.</summary>
        public const int SlotFieldNumber = 1;
        private uint slot_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Slot
        {
            get { return slot_; }
            set
            {
                slot_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagClothes);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagClothes other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Slot != other.Slot) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Slot != 0) hash ^= Slot.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Slot != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Slot);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Slot != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Slot);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagClothes other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Slot != 0)
            {
                Slot = other.Slot;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Slot = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagDefaultAction : pb::IMessage<AppearanceFlagDefaultAction>
    {
        private static readonly pb::MessageParser<AppearanceFlagDefaultAction> _parser = new pb::MessageParser<AppearanceFlagDefaultAction>(() => new AppearanceFlagDefaultAction());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagDefaultAction> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[15]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagDefaultAction()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagDefaultAction(AppearanceFlagDefaultAction other) : this()
        {
            action_ = other.action_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagDefaultAction Clone()
        {
            return new AppearanceFlagDefaultAction(this);
        }

        /// <summary>Field number for the "action" field.</summary>
        public const int ActionFieldNumber = 1;
        private PlayerAction action_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public PlayerAction Action
        {
            get { return action_; }
            set
            {
                action_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagDefaultAction);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagDefaultAction other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Action != other.Action) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Action != 0) hash ^= Action.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Action != 0)
            {
                output.WriteRawTag(8);
                output.WriteEnum((int)Action);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Action != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Action);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagDefaultAction other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Action != 0)
            {
                Action = other.Action;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            action_ = (PlayerAction)input.ReadEnum();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagMarket : pb::IMessage<AppearanceFlagMarket>
    {
        private static readonly pb::MessageParser<AppearanceFlagMarket> _parser = new pb::MessageParser<AppearanceFlagMarket>(() => new AppearanceFlagMarket());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagMarket> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[16]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagMarket()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagMarket(AppearanceFlagMarket other) : this()
        {
            category_ = other.category_;
            tradeAsObjectId_ = other.tradeAsObjectId_;
            showAsObjectId_ = other.showAsObjectId_;
            restrictToProfession_ = other.restrictToProfession_.Clone();
            minimumLevel_ = other.minimumLevel_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagMarket Clone()
        {
            return new AppearanceFlagMarket(this);
        }

        /// <summary>Field number for the "category" field.</summary>
        public const int CategoryFieldNumber = 1;
        private ItemCategory category_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public ItemCategory Category
        {
            get { return category_; }
            set
            {
                category_ = value;
            }
        }

        /// <summary>Field number for the "trade_as_object_id" field.</summary>
        public const int TradeAsObjectIdFieldNumber = 2;
        private uint tradeAsObjectId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint TradeAsObjectId
        {
            get { return tradeAsObjectId_; }
            set
            {
                tradeAsObjectId_ = value;
            }
        }

        /// <summary>Field number for the "show_as_object_id" field.</summary>
        public const int ShowAsObjectIdFieldNumber = 3;
        private uint showAsObjectId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint ShowAsObjectId
        {
            get { return showAsObjectId_; }
            set
            {
                showAsObjectId_ = value;
            }
        }

        /// <summary>Field number for the "restrict_to_profession" field.</summary>
        public const int RestrictToProfessionFieldNumber = 5;
        private static readonly pb::FieldCodec<PlayerProfession> _repeated_restrictToProfession_codec
            = pb::FieldCodec.ForEnum(42, x => (int)x, x => (PlayerProfession)x);
        private readonly pbc::RepeatedField<PlayerProfession> restrictToProfession_ = new pbc::RepeatedField<PlayerProfession>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public pbc::RepeatedField<PlayerProfession> RestrictToProfession
        {
            get { return restrictToProfession_; }
        }

        /// <summary>Field number for the "minimum_level" field.</summary>
        public const int MinimumLevelFieldNumber = 6;
        private uint minimumLevel_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint MinimumLevel
        {
            get { return minimumLevel_; }
            set
            {
                minimumLevel_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagMarket);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagMarket other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Category != other.Category) return false;
            if (TradeAsObjectId != other.TradeAsObjectId) return false;
            if (ShowAsObjectId != other.ShowAsObjectId) return false;
            if (!restrictToProfession_.Equals(other.restrictToProfession_)) return false;
            if (MinimumLevel != other.MinimumLevel) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Category != 0) hash ^= Category.GetHashCode();
            if (TradeAsObjectId != 0) hash ^= TradeAsObjectId.GetHashCode();
            if (ShowAsObjectId != 0) hash ^= ShowAsObjectId.GetHashCode();
            hash ^= restrictToProfession_.GetHashCode();
            if (MinimumLevel != 0) hash ^= MinimumLevel.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Category != 0)
            {
                output.WriteRawTag(8);
                output.WriteEnum((int)Category);
            }
            if (TradeAsObjectId != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(TradeAsObjectId);
            }
            if (ShowAsObjectId != 0)
            {
                output.WriteRawTag(24);
                output.WriteUInt32(ShowAsObjectId);
            }
            restrictToProfession_.WriteTo(output, _repeated_restrictToProfession_codec);
            if (MinimumLevel != 0)
            {
                output.WriteRawTag(48);
                output.WriteUInt32(MinimumLevel);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Category != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Category);
            }
            if (TradeAsObjectId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TradeAsObjectId);
            }
            if (ShowAsObjectId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ShowAsObjectId);
            }
            size += restrictToProfession_.CalculateSize(_repeated_restrictToProfession_codec);
            if (MinimumLevel != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MinimumLevel);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagMarket other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Category != 0)
            {
                Category = other.Category;
            }
            if (other.TradeAsObjectId != 0)
            {
                TradeAsObjectId = other.TradeAsObjectId;
            }
            if (other.ShowAsObjectId != 0)
            {
                ShowAsObjectId = other.ShowAsObjectId;
            }
            restrictToProfession_.Add(other.restrictToProfession_);
            if (other.MinimumLevel != 0)
            {
                MinimumLevel = other.MinimumLevel;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            category_ = (ItemCategory)input.ReadEnum();
                            break;
                        }
                    case 16:
                        {
                            TradeAsObjectId = input.ReadUInt32();
                            break;
                        }
                    case 24:
                        {
                            ShowAsObjectId = input.ReadUInt32();
                            break;
                        }
                    case 42:
                    case 40:
                        {
                            restrictToProfession_.AddEntriesFrom(input, _repeated_restrictToProfession_codec);
                            break;
                        }
                    case 48:
                        {
                            MinimumLevel = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagNPC : pb::IMessage<AppearanceFlagNPC>
    {
        private static readonly pb::MessageParser<AppearanceFlagNPC> _parser = new pb::MessageParser<AppearanceFlagNPC>(() => new AppearanceFlagNPC());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagNPC> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[17]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagNPC()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagNPC(AppearanceFlagNPC other) : this()
        {
            name_ = other.name_;
            location_ = other.location_;
            salePrice_ = other.salePrice_;
            buyPrice_ = other.buyPrice_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagNPC Clone()
        {
            return new AppearanceFlagNPC(this);
        }

        /// <summary>Field number for the "name" field.</summary>
        public const int NameFieldNumber = 1;
        private string name_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string Name
        {
            get { return name_; }
            set
            {
                name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
            }
        }

        /// <summary>Field number for the "location" field.</summary>
        public const int LocationFieldNumber = 2;
        private string location_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string Location
        {
            get { return location_; }
            set
            {
                location_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
            }
        }

        /// <summary>Field number for the "sale_price" field.</summary>
        public const int SalePriceFieldNumber = 3;
        private uint salePrice_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint SalePrice
        {
            get { return salePrice_; }
            set
            {
                salePrice_ = value;
            }
        }

        /// <summary>Field number for the "buy_price" field.</summary>
        public const int BuyPriceFieldNumber = 4;
        private uint buyPrice_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint BuyPrice
        {
            get { return buyPrice_; }
            set
            {
                buyPrice_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagNPC);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagNPC other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Name != other.Name) return false;
            if (Location != other.Location) return false;
            if (SalePrice != other.SalePrice) return false;
            if (BuyPrice != other.BuyPrice) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Name.Length != 0) hash ^= Name.GetHashCode();
            if (Location.Length != 0) hash ^= Location.GetHashCode();
            if (SalePrice != 0) hash ^= SalePrice.GetHashCode();
            if (BuyPrice != 0) hash ^= BuyPrice.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Name.Length != 0)
            {
                output.WriteRawTag(10);
                output.WriteString(Name);
            }
            if (Location.Length != 0)
            {
                output.WriteRawTag(18);
                output.WriteString(Location);
            }
            if (SalePrice != 0)
            {
                output.WriteRawTag(24);
                output.WriteUInt32(SalePrice);
            }
            if (BuyPrice != 0)
            {
                output.WriteRawTag(32);
                output.WriteUInt32(BuyPrice);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Name.Length != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
            }
            if (Location.Length != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeStringSize(Location);
            }
            if (SalePrice != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SalePrice);
            }
            if (BuyPrice != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BuyPrice);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagNPC other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Name.Length != 0)
            {
                Name = other.Name;
            }
            if (other.Location.Length != 0)
            {
                Location = other.Location;
            }
            if (other.SalePrice != 0)
            {
                SalePrice = other.SalePrice;
            }
            if (other.BuyPrice != 0)
            {
                BuyPrice = other.BuyPrice;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 10:
                        {
                            Name = input.ReadString();
                            break;
                        }
                    case 18:
                        {
                            Location = input.ReadString();
                            break;
                        }
                    case 24:
                        {
                            SalePrice = input.ReadUInt32();
                            break;
                        }
                    case 32:
                        {
                            BuyPrice = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagAutomap : pb::IMessage<AppearanceFlagAutomap>
    {
        private static readonly pb::MessageParser<AppearanceFlagAutomap> _parser = new pb::MessageParser<AppearanceFlagAutomap>(() => new AppearanceFlagAutomap());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagAutomap> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[18]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagAutomap()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagAutomap(AppearanceFlagAutomap other) : this()
        {
            color_ = other.color_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagAutomap Clone()
        {
            return new AppearanceFlagAutomap(this);
        }

        /// <summary>Field number for the "color" field.</summary>
        public const int ColorFieldNumber = 1;
        private uint color_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Color
        {
            get { return color_; }
            set
            {
                color_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagAutomap);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagAutomap other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Color != other.Color) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Color != 0) hash ^= Color.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Color != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Color);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Color != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Color);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagAutomap other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Color != 0)
            {
                Color = other.Color;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Color = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagHook : pb::IMessage<AppearanceFlagHook>
    {
        private static readonly pb::MessageParser<AppearanceFlagHook> _parser = new pb::MessageParser<AppearanceFlagHook>(() => new AppearanceFlagHook());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagHook> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[19]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHook()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHook(AppearanceFlagHook other) : this()
        {
            direction_ = other.direction_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagHook Clone()
        {
            return new AppearanceFlagHook(this);
        }

        /// <summary>Field number for the "direction" field.</summary>
        public const int DirectionFieldNumber = 1;
        private HookType direction_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public HookType Direction
        {
            get { return direction_; }
            set
            {
                direction_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagHook);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagHook other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Direction != other.Direction) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Direction != 0) hash ^= Direction.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Direction != 0)
            {
                output.WriteRawTag(8);
                output.WriteEnum((int)Direction);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Direction != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Direction);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagHook other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Direction != 0)
            {
                Direction = other.Direction;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            direction_ = (HookType)input.ReadEnum();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagLenshelp : pb::IMessage<AppearanceFlagLenshelp>
    {
        private static readonly pb::MessageParser<AppearanceFlagLenshelp> _parser = new pb::MessageParser<AppearanceFlagLenshelp>(() => new AppearanceFlagLenshelp());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagLenshelp> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[20]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLenshelp()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLenshelp(AppearanceFlagLenshelp other) : this()
        {
            id_ = other.id_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagLenshelp Clone()
        {
            return new AppearanceFlagLenshelp(this);
        }

        /// <summary>Field number for the "id" field.</summary>
        public const int IdFieldNumber = 1;
        private uint id_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint Id
        {
            get { return id_; }
            set
            {
                id_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagLenshelp);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagLenshelp other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (Id != other.Id) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (Id != 0) hash ^= Id.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (Id != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(Id);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (Id != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Id);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagLenshelp other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Id != 0)
            {
                Id = other.Id;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            Id = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagChangedToExpire : pb::IMessage<AppearanceFlagChangedToExpire>
    {
        private static readonly pb::MessageParser<AppearanceFlagChangedToExpire> _parser = new pb::MessageParser<AppearanceFlagChangedToExpire>(() => new AppearanceFlagChangedToExpire());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagChangedToExpire> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[21]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagChangedToExpire()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagChangedToExpire(AppearanceFlagChangedToExpire other) : this()
        {
            formerObjectTypeid_ = other.formerObjectTypeid_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagChangedToExpire Clone()
        {
            return new AppearanceFlagChangedToExpire(this);
        }

        /// <summary>Field number for the "former_object_typeid" field.</summary>
        public const int FormerObjectTypeidFieldNumber = 1;
        private uint formerObjectTypeid_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint FormerObjectTypeid
        {
            get { return formerObjectTypeid_; }
            set
            {
                formerObjectTypeid_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagChangedToExpire);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagChangedToExpire other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (FormerObjectTypeid != other.FormerObjectTypeid) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (FormerObjectTypeid != 0) hash ^= FormerObjectTypeid.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (FormerObjectTypeid != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(FormerObjectTypeid);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (FormerObjectTypeid != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FormerObjectTypeid);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagChangedToExpire other)
        {
            if (other == null)
            {
                return;
            }
            if (other.FormerObjectTypeid != 0)
            {
                FormerObjectTypeid = other.FormerObjectTypeid;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            FormerObjectTypeid = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class AppearanceFlagCyclopedia : pb::IMessage<AppearanceFlagCyclopedia>
    {
        private static readonly pb::MessageParser<AppearanceFlagCyclopedia> _parser = new pb::MessageParser<AppearanceFlagCyclopedia>(() => new AppearanceFlagCyclopedia());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<AppearanceFlagCyclopedia> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[22]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagCyclopedia()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagCyclopedia(AppearanceFlagCyclopedia other) : this()
        {
            cyclopediaType_ = other.cyclopediaType_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public AppearanceFlagCyclopedia Clone()
        {
            return new AppearanceFlagCyclopedia(this);
        }

        /// <summary>Field number for the "cyclopedia_type" field.</summary>
        public const int CyclopediaTypeFieldNumber = 1;
        private uint cyclopediaType_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint CyclopediaType
        {
            get { return cyclopediaType_; }
            set
            {
                cyclopediaType_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as AppearanceFlagCyclopedia);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(AppearanceFlagCyclopedia other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (CyclopediaType != other.CyclopediaType) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (CyclopediaType != 0) hash ^= CyclopediaType.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (CyclopediaType != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(CyclopediaType);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (CyclopediaType != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CyclopediaType);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(AppearanceFlagCyclopedia other)
        {
            if (other == null)
            {
                return;
            }
            if (other.CyclopediaType != 0)
            {
                CyclopediaType = other.CyclopediaType;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            CyclopediaType = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    public sealed partial class SpecialMeaningAppearanceIds : pb::IMessage<SpecialMeaningAppearanceIds>
    {
        private static readonly pb::MessageParser<SpecialMeaningAppearanceIds> _parser = new pb::MessageParser<SpecialMeaningAppearanceIds>(() => new SpecialMeaningAppearanceIds());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<SpecialMeaningAppearanceIds> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor
        {
            get { return AppearancesReflection.Descriptor.MessageTypes[23]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        pbr::MessageDescriptor pb::IMessage.Descriptor
        {
            get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpecialMeaningAppearanceIds()
        {
            OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpecialMeaningAppearanceIds(SpecialMeaningAppearanceIds other) : this()
        {
            goldCoinId_ = other.goldCoinId_;
            platinumCoinId_ = other.platinumCoinId_;
            crystalCoinId_ = other.crystalCoinId_;
            tibiaCoinId_ = other.tibiaCoinId_;
            stampedLetterId_ = other.stampedLetterId_;
            supplyStashId_ = other.supplyStashId_;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public SpecialMeaningAppearanceIds Clone()
        {
            return new SpecialMeaningAppearanceIds(this);
        }

        /// <summary>Field number for the "gold_coin_id" field.</summary>
        public const int GoldCoinIdFieldNumber = 1;
        private uint goldCoinId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint GoldCoinId
        {
            get { return goldCoinId_; }
            set
            {
                goldCoinId_ = value;
            }
        }

        /// <summary>Field number for the "platinum_coin_id" field.</summary>
        public const int PlatinumCoinIdFieldNumber = 2;
        private uint platinumCoinId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint PlatinumCoinId
        {
            get { return platinumCoinId_; }
            set
            {
                platinumCoinId_ = value;
            }
        }

        /// <summary>Field number for the "crystal_coin_id" field.</summary>
        public const int CrystalCoinIdFieldNumber = 3;
        private uint crystalCoinId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint CrystalCoinId
        {
            get { return crystalCoinId_; }
            set
            {
                crystalCoinId_ = value;
            }
        }

        /// <summary>Field number for the "tibia_coin_id" field.</summary>
        public const int TibiaCoinIdFieldNumber = 4;
        private uint tibiaCoinId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint TibiaCoinId
        {
            get { return tibiaCoinId_; }
            set
            {
                tibiaCoinId_ = value;
            }
        }

        /// <summary>Field number for the "stamped_letter_id" field.</summary>
        public const int StampedLetterIdFieldNumber = 5;
        private uint stampedLetterId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint StampedLetterId
        {
            get { return stampedLetterId_; }
            set
            {
                stampedLetterId_ = value;
            }
        }

        /// <summary>Field number for the "supply_stash_id" field.</summary>
        public const int SupplyStashIdFieldNumber = 6;
        private uint supplyStashId_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public uint SupplyStashId
        {
            get { return supplyStashId_; }
            set
            {
                supplyStashId_ = value;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override bool Equals(object other)
        {
            return Equals(other as SpecialMeaningAppearanceIds);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(SpecialMeaningAppearanceIds other)
        {
            if (ReferenceEquals(other, null))
            {
                return false;
            }
            if (ReferenceEquals(other, this))
            {
                return true;
            }
            if (GoldCoinId != other.GoldCoinId) return false;
            if (PlatinumCoinId != other.PlatinumCoinId) return false;
            if (CrystalCoinId != other.CrystalCoinId) return false;
            if (TibiaCoinId != other.TibiaCoinId) return false;
            if (StampedLetterId != other.StampedLetterId) return false;
            if (SupplyStashId != other.SupplyStashId) return false;
            return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode()
        {
            int hash = 1;
            if (GoldCoinId != 0) hash ^= GoldCoinId.GetHashCode();
            if (PlatinumCoinId != 0) hash ^= PlatinumCoinId.GetHashCode();
            if (CrystalCoinId != 0) hash ^= CrystalCoinId.GetHashCode();
            if (TibiaCoinId != 0) hash ^= TibiaCoinId.GetHashCode();
            if (StampedLetterId != 0) hash ^= StampedLetterId.GetHashCode();
            if (SupplyStashId != 0) hash ^= SupplyStashId.GetHashCode();
            return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override string ToString()
        {
            return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void WriteTo(pb::CodedOutputStream output)
        {
            if (GoldCoinId != 0)
            {
                output.WriteRawTag(8);
                output.WriteUInt32(GoldCoinId);
            }
            if (PlatinumCoinId != 0)
            {
                output.WriteRawTag(16);
                output.WriteUInt32(PlatinumCoinId);
            }
            if (CrystalCoinId != 0)
            {
                output.WriteRawTag(24);
                output.WriteUInt32(CrystalCoinId);
            }
            if (TibiaCoinId != 0)
            {
                output.WriteRawTag(32);
                output.WriteUInt32(TibiaCoinId);
            }
            if (StampedLetterId != 0)
            {
                output.WriteRawTag(40);
                output.WriteUInt32(StampedLetterId);
            }
            if (SupplyStashId != 0)
            {
                output.WriteRawTag(48);
                output.WriteUInt32(SupplyStashId);
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize()
        {
            int size = 0;
            if (GoldCoinId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(GoldCoinId);
            }
            if (PlatinumCoinId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PlatinumCoinId);
            }
            if (CrystalCoinId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CrystalCoinId);
            }
            if (TibiaCoinId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TibiaCoinId);
            }
            if (StampedLetterId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StampedLetterId);
            }
            if (SupplyStashId != 0)
            {
                size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SupplyStashId);
            }
            return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(SpecialMeaningAppearanceIds other)
        {
            if (other == null)
            {
                return;
            }
            if (other.GoldCoinId != 0)
            {
                GoldCoinId = other.GoldCoinId;
            }
            if (other.PlatinumCoinId != 0)
            {
                PlatinumCoinId = other.PlatinumCoinId;
            }
            if (other.CrystalCoinId != 0)
            {
                CrystalCoinId = other.CrystalCoinId;
            }
            if (other.TibiaCoinId != 0)
            {
                TibiaCoinId = other.TibiaCoinId;
            }
            if (other.StampedLetterId != 0)
            {
                StampedLetterId = other.StampedLetterId;
            }
            if (other.SupplyStashId != 0)
            {
                SupplyStashId = other.SupplyStashId;
            }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                    default:
                        input.SkipLastField();
                        break;
                    case 8:
                        {
                            GoldCoinId = input.ReadUInt32();
                            break;
                        }
                    case 16:
                        {
                            PlatinumCoinId = input.ReadUInt32();
                            break;
                        }
                    case 24:
                        {
                            CrystalCoinId = input.ReadUInt32();
                            break;
                        }
                    case 32:
                        {
                            TibiaCoinId = input.ReadUInt32();
                            break;
                        }
                    case 40:
                        {
                            StampedLetterId = input.ReadUInt32();
                            break;
                        }
                    case 48:
                        {
                            SupplyStashId = input.ReadUInt32();
                            break;
                        }
                }
            }
        }

    }

    #endregion

}

#endregion Designer generated code