// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: SceneEntityInfo.proto

package emu.grasscutter.net.proto;

public final class SceneEntityInfoOuterClass {
  private SceneEntityInfoOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface SceneEntityInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SceneEntityInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.ProtEntityType entity_type = 1;</code>
     * @return The enum numeric value on the wire for entityType.
     */
    int getEntityTypeValue();
    /**
     * <code>.ProtEntityType entity_type = 1;</code>
     * @return The entityType.
     */
    emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType getEntityType();

    /**
     * <code>uint32 entity_id = 2;</code>
     * @return The entityId.
     */
    int getEntityId();

    /**
     * <code>string name = 3;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>string name = 3;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>.MotionInfo motion_info = 4;</code>
     * @return Whether the motionInfo field is set.
     */
    boolean hasMotionInfo();
    /**
     * <code>.MotionInfo motion_info = 4;</code>
     * @return The motionInfo.
     */
    emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo getMotionInfo();
    /**
     * <code>.MotionInfo motion_info = 4;</code>
     */
    emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder getMotionInfoOrBuilder();

    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair> 
        getPropListList();
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    emu.grasscutter.net.proto.PropPairOuterClass.PropPair getPropList(int index);
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    int getPropListCount();
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder> 
        getPropListOrBuilderList();
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder getPropListOrBuilder(
        int index);

    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> 
        getFightPropListList();
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair getFightPropList(int index);
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    int getFightPropListCount();
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder> 
        getFightPropListOrBuilderList();
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder getFightPropListOrBuilder(
        int index);

    /**
     * <code>uint32 life_state = 7;</code>
     * @return The lifeState.
     */
    int getLifeState();

    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> 
        getAnimatorParaListList();
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair getAnimatorParaList(int index);
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    int getAnimatorParaListCount();
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder> 
        getAnimatorParaListOrBuilderList();
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder getAnimatorParaListOrBuilder(
        int index);

    /**
     * <code>uint32 last_move_scene_time_ms = 17;</code>
     * @return The lastMoveSceneTimeMs.
     */
    int getLastMoveSceneTimeMs();

    /**
     * <code>uint32 last_move_reliable_seq = 18;</code>
     * @return The lastMoveReliableSeq.
     */
    int getLastMoveReliableSeq();

    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     * @return Whether the entityClientData field is set.
     */
    boolean hasEntityClientData();
    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     * @return The entityClientData.
     */
    emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData getEntityClientData();
    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     */
    emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder getEntityClientDataOrBuilder();

    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> 
        getEntityEnvironmentInfoListList();
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo getEntityEnvironmentInfoList(int index);
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    int getEntityEnvironmentInfoListCount();
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder> 
        getEntityEnvironmentInfoListOrBuilderList();
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder getEntityEnvironmentInfoListOrBuilder(
        int index);

    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     * @return Whether the entityAuthorityInfo field is set.
     */
    boolean hasEntityAuthorityInfo();
    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     * @return The entityAuthorityInfo.
     */
    emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo getEntityAuthorityInfo();
    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     */
    emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder getEntityAuthorityInfoOrBuilder();

    /**
     * <code>repeated string tag_list = 22;</code>
     * @return A list containing the tagList.
     */
    java.util.List<java.lang.String>
        getTagListList();
    /**
     * <code>repeated string tag_list = 22;</code>
     * @return The count of tagList.
     */
    int getTagListCount();
    /**
     * <code>repeated string tag_list = 22;</code>
     * @param index The index of the element to return.
     * @return The tagList at the given index.
     */
    java.lang.String getTagList(int index);
    /**
     * <code>repeated string tag_list = 22;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagList at the given index.
     */
    com.google.protobuf.ByteString
        getTagListBytes(int index);

    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> 
        getServerBuffListList();
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff getServerBuffList(int index);
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    int getServerBuffListCount();
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder> 
        getServerBuffListOrBuilderList();
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder getServerBuffListOrBuilder(
        int index);

    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     * @return Whether the avatar field is set.
     */
    boolean hasAvatar();
    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     * @return The avatar.
     */
    emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo getAvatar();
    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     */
    emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder getAvatarOrBuilder();

    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     * @return Whether the monster field is set.
     */
    boolean hasMonster();
    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     * @return The monster.
     */
    emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo getMonster();
    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     */
    emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder getMonsterOrBuilder();

    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     * @return Whether the npc field is set.
     */
    boolean hasNpc();
    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     * @return The npc.
     */
    emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo getNpc();
    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     */
    emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder getNpcOrBuilder();

    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     * @return Whether the gadget field is set.
     */
    boolean hasGadget();
    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     * @return The gadget.
     */
    emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo getGadget();
    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     */
    emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder getGadgetOrBuilder();

    public emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.EntityCase getEntityCase();
  }
  /**
   * Protobuf type {@code SceneEntityInfo}
   */
  public static final class SceneEntityInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SceneEntityInfo)
      SceneEntityInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SceneEntityInfo.newBuilder() to construct.
    private SceneEntityInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SceneEntityInfo() {
      entityType_ = 0;
      name_ = "";
      propList_ = java.util.Collections.emptyList();
      fightPropList_ = java.util.Collections.emptyList();
      animatorParaList_ = java.util.Collections.emptyList();
      entityEnvironmentInfoList_ = java.util.Collections.emptyList();
      tagList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      serverBuffList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SceneEntityInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SceneEntityInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();

              entityType_ = rawValue;
              break;
            }
            case 16: {

              entityId_ = input.readUInt32();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 34: {
              emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder subBuilder = null;
              if (motionInfo_ != null) {
                subBuilder = motionInfo_.toBuilder();
              }
              motionInfo_ = input.readMessage(emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(motionInfo_);
                motionInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                propList_ = new java.util.ArrayList<emu.grasscutter.net.proto.PropPairOuterClass.PropPair>();
                mutable_bitField0_ |= 0x00000001;
              }
              propList_.add(
                  input.readMessage(emu.grasscutter.net.proto.PropPairOuterClass.PropPair.parser(), extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                fightPropList_ = new java.util.ArrayList<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair>();
                mutable_bitField0_ |= 0x00000002;
              }
              fightPropList_.add(
                  input.readMessage(emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.parser(), extensionRegistry));
              break;
            }
            case 56: {

              lifeState_ = input.readUInt32();
              break;
            }
            case 74: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                animatorParaList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair>();
                mutable_bitField0_ |= 0x00000004;
              }
              animatorParaList_.add(
                  input.readMessage(emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.parser(), extensionRegistry));
              break;
            }
            case 82: {
              emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder subBuilder = null;
              if (entityCase_ == 10) {
                subBuilder = ((emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_).toBuilder();
              }
              entity_ =
                  input.readMessage(emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_);
                entity_ = subBuilder.buildPartial();
              }
              entityCase_ = 10;
              break;
            }
            case 90: {
              emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder subBuilder = null;
              if (entityCase_ == 11) {
                subBuilder = ((emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_).toBuilder();
              }
              entity_ =
                  input.readMessage(emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_);
                entity_ = subBuilder.buildPartial();
              }
              entityCase_ = 11;
              break;
            }
            case 98: {
              emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder subBuilder = null;
              if (entityCase_ == 12) {
                subBuilder = ((emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_).toBuilder();
              }
              entity_ =
                  input.readMessage(emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_);
                entity_ = subBuilder.buildPartial();
              }
              entityCase_ = 12;
              break;
            }
            case 106: {
              emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder subBuilder = null;
              if (entityCase_ == 13) {
                subBuilder = ((emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_).toBuilder();
              }
              entity_ =
                  input.readMessage(emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_);
                entity_ = subBuilder.buildPartial();
              }
              entityCase_ = 13;
              break;
            }
            case 136: {

              lastMoveSceneTimeMs_ = input.readUInt32();
              break;
            }
            case 144: {

              lastMoveReliableSeq_ = input.readUInt32();
              break;
            }
            case 154: {
              emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder subBuilder = null;
              if (entityClientData_ != null) {
                subBuilder = entityClientData_.toBuilder();
              }
              entityClientData_ = input.readMessage(emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(entityClientData_);
                entityClientData_ = subBuilder.buildPartial();
              }

              break;
            }
            case 162: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                entityEnvironmentInfoList_ = new java.util.ArrayList<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo>();
                mutable_bitField0_ |= 0x00000008;
              }
              entityEnvironmentInfoList_.add(
                  input.readMessage(emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.parser(), extensionRegistry));
              break;
            }
            case 170: {
              emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder subBuilder = null;
              if (entityAuthorityInfo_ != null) {
                subBuilder = entityAuthorityInfo_.toBuilder();
              }
              entityAuthorityInfo_ = input.readMessage(emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(entityAuthorityInfo_);
                entityAuthorityInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 178: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                tagList_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              tagList_.add(s);
              break;
            }
            case 186: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                serverBuffList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff>();
                mutable_bitField0_ |= 0x00000020;
              }
              serverBuffList_.add(
                  input.readMessage(emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          propList_ = java.util.Collections.unmodifiableList(propList_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          fightPropList_ = java.util.Collections.unmodifiableList(fightPropList_);
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          animatorParaList_ = java.util.Collections.unmodifiableList(animatorParaList_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          entityEnvironmentInfoList_ = java.util.Collections.unmodifiableList(entityEnvironmentInfoList_);
        }
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          tagList_ = tagList_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000020) != 0)) {
          serverBuffList_ = java.util.Collections.unmodifiableList(serverBuffList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.internal_static_SceneEntityInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.internal_static_SceneEntityInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.class, emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.Builder.class);
    }

    private int entityCase_ = 0;
    private java.lang.Object entity_;
    public enum EntityCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      AVATAR(10),
      MONSTER(11),
      NPC(12),
      GADGET(13),
      ENTITY_NOT_SET(0);
      private final int value;
      private EntityCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static EntityCase valueOf(int value) {
        return forNumber(value);
      }

      public static EntityCase forNumber(int value) {
        switch (value) {
          case 10: return AVATAR;
          case 11: return MONSTER;
          case 12: return NPC;
          case 13: return GADGET;
          case 0: return ENTITY_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public EntityCase
    getEntityCase() {
      return EntityCase.forNumber(
          entityCase_);
    }

    public static final int ENTITY_TYPE_FIELD_NUMBER = 1;
    private int entityType_;
    /**
     * <code>.ProtEntityType entity_type = 1;</code>
     * @return The enum numeric value on the wire for entityType.
     */
    @java.lang.Override public int getEntityTypeValue() {
      return entityType_;
    }
    /**
     * <code>.ProtEntityType entity_type = 1;</code>
     * @return The entityType.
     */
    @java.lang.Override public emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType getEntityType() {
      @SuppressWarnings("deprecation")
      emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType result = emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.valueOf(entityType_);
      return result == null ? emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.UNRECOGNIZED : result;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 2;
    private int entityId_;
    /**
     * <code>uint32 entity_id = 2;</code>
     * @return The entityId.
     */
    @java.lang.Override
    public int getEntityId() {
      return entityId_;
    }

    public static final int NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object name_;
    /**
     * <code>string name = 3;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 3;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MOTION_INFO_FIELD_NUMBER = 4;
    private emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo motionInfo_;
    /**
     * <code>.MotionInfo motion_info = 4;</code>
     * @return Whether the motionInfo field is set.
     */
    @java.lang.Override
    public boolean hasMotionInfo() {
      return motionInfo_ != null;
    }
    /**
     * <code>.MotionInfo motion_info = 4;</code>
     * @return The motionInfo.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo getMotionInfo() {
      return motionInfo_ == null ? emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.getDefaultInstance() : motionInfo_;
    }
    /**
     * <code>.MotionInfo motion_info = 4;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder getMotionInfoOrBuilder() {
      return getMotionInfo();
    }

    public static final int PROP_LIST_FIELD_NUMBER = 5;
    private java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair> propList_;
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair> getPropListList() {
      return propList_;
    }
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder> 
        getPropListOrBuilderList() {
      return propList_;
    }
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    @java.lang.Override
    public int getPropListCount() {
      return propList_.size();
    }
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.PropPairOuterClass.PropPair getPropList(int index) {
      return propList_.get(index);
    }
    /**
     * <code>repeated .PropPair prop_list = 5;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder getPropListOrBuilder(
        int index) {
      return propList_.get(index);
    }

    public static final int FIGHT_PROP_LIST_FIELD_NUMBER = 6;
    private java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> fightPropList_;
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> getFightPropListList() {
      return fightPropList_;
    }
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder> 
        getFightPropListOrBuilderList() {
      return fightPropList_;
    }
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    @java.lang.Override
    public int getFightPropListCount() {
      return fightPropList_.size();
    }
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair getFightPropList(int index) {
      return fightPropList_.get(index);
    }
    /**
     * <code>repeated .FightPropPair fight_prop_list = 6;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder getFightPropListOrBuilder(
        int index) {
      return fightPropList_.get(index);
    }

    public static final int LIFE_STATE_FIELD_NUMBER = 7;
    private int lifeState_;
    /**
     * <code>uint32 life_state = 7;</code>
     * @return The lifeState.
     */
    @java.lang.Override
    public int getLifeState() {
      return lifeState_;
    }

    public static final int ANIMATOR_PARA_LIST_FIELD_NUMBER = 9;
    private java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> animatorParaList_;
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> getAnimatorParaListList() {
      return animatorParaList_;
    }
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder> 
        getAnimatorParaListOrBuilderList() {
      return animatorParaList_;
    }
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    @java.lang.Override
    public int getAnimatorParaListCount() {
      return animatorParaList_.size();
    }
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair getAnimatorParaList(int index) {
      return animatorParaList_.get(index);
    }
    /**
     * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder getAnimatorParaListOrBuilder(
        int index) {
      return animatorParaList_.get(index);
    }

    public static final int LAST_MOVE_SCENE_TIME_MS_FIELD_NUMBER = 17;
    private int lastMoveSceneTimeMs_;
    /**
     * <code>uint32 last_move_scene_time_ms = 17;</code>
     * @return The lastMoveSceneTimeMs.
     */
    @java.lang.Override
    public int getLastMoveSceneTimeMs() {
      return lastMoveSceneTimeMs_;
    }

    public static final int LAST_MOVE_RELIABLE_SEQ_FIELD_NUMBER = 18;
    private int lastMoveReliableSeq_;
    /**
     * <code>uint32 last_move_reliable_seq = 18;</code>
     * @return The lastMoveReliableSeq.
     */
    @java.lang.Override
    public int getLastMoveReliableSeq() {
      return lastMoveReliableSeq_;
    }

    public static final int ENTITY_CLIENT_DATA_FIELD_NUMBER = 19;
    private emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData entityClientData_;
    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     * @return Whether the entityClientData field is set.
     */
    @java.lang.Override
    public boolean hasEntityClientData() {
      return entityClientData_ != null;
    }
    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     * @return The entityClientData.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData getEntityClientData() {
      return entityClientData_ == null ? emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.getDefaultInstance() : entityClientData_;
    }
    /**
     * <code>.EntityClientData entity_client_data = 19;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder getEntityClientDataOrBuilder() {
      return getEntityClientData();
    }

    public static final int ENTITY_ENVIRONMENT_INFO_LIST_FIELD_NUMBER = 20;
    private java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> entityEnvironmentInfoList_;
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> getEntityEnvironmentInfoListList() {
      return entityEnvironmentInfoList_;
    }
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder> 
        getEntityEnvironmentInfoListOrBuilderList() {
      return entityEnvironmentInfoList_;
    }
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    @java.lang.Override
    public int getEntityEnvironmentInfoListCount() {
      return entityEnvironmentInfoList_.size();
    }
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo getEntityEnvironmentInfoList(int index) {
      return entityEnvironmentInfoList_.get(index);
    }
    /**
     * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder getEntityEnvironmentInfoListOrBuilder(
        int index) {
      return entityEnvironmentInfoList_.get(index);
    }

    public static final int ENTITY_AUTHORITY_INFO_FIELD_NUMBER = 21;
    private emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo entityAuthorityInfo_;
    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     * @return Whether the entityAuthorityInfo field is set.
     */
    @java.lang.Override
    public boolean hasEntityAuthorityInfo() {
      return entityAuthorityInfo_ != null;
    }
    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     * @return The entityAuthorityInfo.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo getEntityAuthorityInfo() {
      return entityAuthorityInfo_ == null ? emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.getDefaultInstance() : entityAuthorityInfo_;
    }
    /**
     * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder getEntityAuthorityInfoOrBuilder() {
      return getEntityAuthorityInfo();
    }

    public static final int TAG_LIST_FIELD_NUMBER = 22;
    private com.google.protobuf.LazyStringList tagList_;
    /**
     * <code>repeated string tag_list = 22;</code>
     * @return A list containing the tagList.
     */
    public com.google.protobuf.ProtocolStringList
        getTagListList() {
      return tagList_;
    }
    /**
     * <code>repeated string tag_list = 22;</code>
     * @return The count of tagList.
     */
    public int getTagListCount() {
      return tagList_.size();
    }
    /**
     * <code>repeated string tag_list = 22;</code>
     * @param index The index of the element to return.
     * @return The tagList at the given index.
     */
    public java.lang.String getTagList(int index) {
      return tagList_.get(index);
    }
    /**
     * <code>repeated string tag_list = 22;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagList at the given index.
     */
    public com.google.protobuf.ByteString
        getTagListBytes(int index) {
      return tagList_.getByteString(index);
    }

    public static final int SERVER_BUFF_LIST_FIELD_NUMBER = 23;
    private java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> serverBuffList_;
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> getServerBuffListList() {
      return serverBuffList_;
    }
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder> 
        getServerBuffListOrBuilderList() {
      return serverBuffList_;
    }
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    @java.lang.Override
    public int getServerBuffListCount() {
      return serverBuffList_.size();
    }
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff getServerBuffList(int index) {
      return serverBuffList_.get(index);
    }
    /**
     * <code>repeated .ServerBuff server_buff_list = 23;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder getServerBuffListOrBuilder(
        int index) {
      return serverBuffList_.get(index);
    }

    public static final int AVATAR_FIELD_NUMBER = 10;
    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     * @return Whether the avatar field is set.
     */
    @java.lang.Override
    public boolean hasAvatar() {
      return entityCase_ == 10;
    }
    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     * @return The avatar.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo getAvatar() {
      if (entityCase_ == 10) {
         return (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
    }
    /**
     * <code>.SceneAvatarInfo avatar = 10;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder getAvatarOrBuilder() {
      if (entityCase_ == 10) {
         return (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
    }

    public static final int MONSTER_FIELD_NUMBER = 11;
    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     * @return Whether the monster field is set.
     */
    @java.lang.Override
    public boolean hasMonster() {
      return entityCase_ == 11;
    }
    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     * @return The monster.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo getMonster() {
      if (entityCase_ == 11) {
         return (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
    }
    /**
     * <code>.SceneMonsterInfo monster = 11;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder getMonsterOrBuilder() {
      if (entityCase_ == 11) {
         return (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
    }

    public static final int NPC_FIELD_NUMBER = 12;
    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     * @return Whether the npc field is set.
     */
    @java.lang.Override
    public boolean hasNpc() {
      return entityCase_ == 12;
    }
    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     * @return The npc.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo getNpc() {
      if (entityCase_ == 12) {
         return (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
    }
    /**
     * <code>.SceneNpcInfo npc = 12;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder getNpcOrBuilder() {
      if (entityCase_ == 12) {
         return (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
    }

    public static final int GADGET_FIELD_NUMBER = 13;
    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     * @return Whether the gadget field is set.
     */
    @java.lang.Override
    public boolean hasGadget() {
      return entityCase_ == 13;
    }
    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     * @return The gadget.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo getGadget() {
      if (entityCase_ == 13) {
         return (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
    }
    /**
     * <code>.SceneGadgetInfo gadget = 13;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder getGadgetOrBuilder() {
      if (entityCase_ == 13) {
         return (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_;
      }
      return emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (entityType_ != emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.PROT_ENTITY_TYPE_NONE.getNumber()) {
        output.writeEnum(1, entityType_);
      }
      if (entityId_ != 0) {
        output.writeUInt32(2, entityId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
      }
      if (motionInfo_ != null) {
        output.writeMessage(4, getMotionInfo());
      }
      for (int i = 0; i < propList_.size(); i++) {
        output.writeMessage(5, propList_.get(i));
      }
      for (int i = 0; i < fightPropList_.size(); i++) {
        output.writeMessage(6, fightPropList_.get(i));
      }
      if (lifeState_ != 0) {
        output.writeUInt32(7, lifeState_);
      }
      for (int i = 0; i < animatorParaList_.size(); i++) {
        output.writeMessage(9, animatorParaList_.get(i));
      }
      if (entityCase_ == 10) {
        output.writeMessage(10, (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_);
      }
      if (entityCase_ == 11) {
        output.writeMessage(11, (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_);
      }
      if (entityCase_ == 12) {
        output.writeMessage(12, (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_);
      }
      if (entityCase_ == 13) {
        output.writeMessage(13, (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_);
      }
      if (lastMoveSceneTimeMs_ != 0) {
        output.writeUInt32(17, lastMoveSceneTimeMs_);
      }
      if (lastMoveReliableSeq_ != 0) {
        output.writeUInt32(18, lastMoveReliableSeq_);
      }
      if (entityClientData_ != null) {
        output.writeMessage(19, getEntityClientData());
      }
      for (int i = 0; i < entityEnvironmentInfoList_.size(); i++) {
        output.writeMessage(20, entityEnvironmentInfoList_.get(i));
      }
      if (entityAuthorityInfo_ != null) {
        output.writeMessage(21, getEntityAuthorityInfo());
      }
      for (int i = 0; i < tagList_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 22, tagList_.getRaw(i));
      }
      for (int i = 0; i < serverBuffList_.size(); i++) {
        output.writeMessage(23, serverBuffList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (entityType_ != emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.PROT_ENTITY_TYPE_NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, entityType_);
      }
      if (entityId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, entityId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
      }
      if (motionInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMotionInfo());
      }
      for (int i = 0; i < propList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, propList_.get(i));
      }
      for (int i = 0; i < fightPropList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, fightPropList_.get(i));
      }
      if (lifeState_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, lifeState_);
      }
      for (int i = 0; i < animatorParaList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, animatorParaList_.get(i));
      }
      if (entityCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_);
      }
      if (entityCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_);
      }
      if (entityCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_);
      }
      if (entityCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_);
      }
      if (lastMoveSceneTimeMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(17, lastMoveSceneTimeMs_);
      }
      if (lastMoveReliableSeq_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(18, lastMoveReliableSeq_);
      }
      if (entityClientData_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, getEntityClientData());
      }
      for (int i = 0; i < entityEnvironmentInfoList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, entityEnvironmentInfoList_.get(i));
      }
      if (entityAuthorityInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getEntityAuthorityInfo());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tagList_.size(); i++) {
          dataSize += computeStringSizeNoTag(tagList_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getTagListList().size();
      }
      for (int i = 0; i < serverBuffList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, serverBuffList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo)) {
        return super.equals(obj);
      }
      emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo other = (emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo) obj;

      if (entityType_ != other.entityType_) return false;
      if (getEntityId()
          != other.getEntityId()) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (hasMotionInfo() != other.hasMotionInfo()) return false;
      if (hasMotionInfo()) {
        if (!getMotionInfo()
            .equals(other.getMotionInfo())) return false;
      }
      if (!getPropListList()
          .equals(other.getPropListList())) return false;
      if (!getFightPropListList()
          .equals(other.getFightPropListList())) return false;
      if (getLifeState()
          != other.getLifeState()) return false;
      if (!getAnimatorParaListList()
          .equals(other.getAnimatorParaListList())) return false;
      if (getLastMoveSceneTimeMs()
          != other.getLastMoveSceneTimeMs()) return false;
      if (getLastMoveReliableSeq()
          != other.getLastMoveReliableSeq()) return false;
      if (hasEntityClientData() != other.hasEntityClientData()) return false;
      if (hasEntityClientData()) {
        if (!getEntityClientData()
            .equals(other.getEntityClientData())) return false;
      }
      if (!getEntityEnvironmentInfoListList()
          .equals(other.getEntityEnvironmentInfoListList())) return false;
      if (hasEntityAuthorityInfo() != other.hasEntityAuthorityInfo()) return false;
      if (hasEntityAuthorityInfo()) {
        if (!getEntityAuthorityInfo()
            .equals(other.getEntityAuthorityInfo())) return false;
      }
      if (!getTagListList()
          .equals(other.getTagListList())) return false;
      if (!getServerBuffListList()
          .equals(other.getServerBuffListList())) return false;
      if (!getEntityCase().equals(other.getEntityCase())) return false;
      switch (entityCase_) {
        case 10:
          if (!getAvatar()
              .equals(other.getAvatar())) return false;
          break;
        case 11:
          if (!getMonster()
              .equals(other.getMonster())) return false;
          break;
        case 12:
          if (!getNpc()
              .equals(other.getNpc())) return false;
          break;
        case 13:
          if (!getGadget()
              .equals(other.getGadget())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ENTITY_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + entityType_;
      hash = (37 * hash) + ENTITY_ID_FIELD_NUMBER;
      hash = (53 * hash) + getEntityId();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      if (hasMotionInfo()) {
        hash = (37 * hash) + MOTION_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getMotionInfo().hashCode();
      }
      if (getPropListCount() > 0) {
        hash = (37 * hash) + PROP_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getPropListList().hashCode();
      }
      if (getFightPropListCount() > 0) {
        hash = (37 * hash) + FIGHT_PROP_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getFightPropListList().hashCode();
      }
      hash = (37 * hash) + LIFE_STATE_FIELD_NUMBER;
      hash = (53 * hash) + getLifeState();
      if (getAnimatorParaListCount() > 0) {
        hash = (37 * hash) + ANIMATOR_PARA_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getAnimatorParaListList().hashCode();
      }
      hash = (37 * hash) + LAST_MOVE_SCENE_TIME_MS_FIELD_NUMBER;
      hash = (53 * hash) + getLastMoveSceneTimeMs();
      hash = (37 * hash) + LAST_MOVE_RELIABLE_SEQ_FIELD_NUMBER;
      hash = (53 * hash) + getLastMoveReliableSeq();
      if (hasEntityClientData()) {
        hash = (37 * hash) + ENTITY_CLIENT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getEntityClientData().hashCode();
      }
      if (getEntityEnvironmentInfoListCount() > 0) {
        hash = (37 * hash) + ENTITY_ENVIRONMENT_INFO_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getEntityEnvironmentInfoListList().hashCode();
      }
      if (hasEntityAuthorityInfo()) {
        hash = (37 * hash) + ENTITY_AUTHORITY_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getEntityAuthorityInfo().hashCode();
      }
      if (getTagListCount() > 0) {
        hash = (37 * hash) + TAG_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getTagListList().hashCode();
      }
      if (getServerBuffListCount() > 0) {
        hash = (37 * hash) + SERVER_BUFF_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getServerBuffListList().hashCode();
      }
      switch (entityCase_) {
        case 10:
          hash = (37 * hash) + AVATAR_FIELD_NUMBER;
          hash = (53 * hash) + getAvatar().hashCode();
          break;
        case 11:
          hash = (37 * hash) + MONSTER_FIELD_NUMBER;
          hash = (53 * hash) + getMonster().hashCode();
          break;
        case 12:
          hash = (37 * hash) + NPC_FIELD_NUMBER;
          hash = (53 * hash) + getNpc().hashCode();
          break;
        case 13:
          hash = (37 * hash) + GADGET_FIELD_NUMBER;
          hash = (53 * hash) + getGadget().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SceneEntityInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SceneEntityInfo)
        emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.internal_static_SceneEntityInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.internal_static_SceneEntityInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.class, emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.Builder.class);
      }

      // Construct using emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPropListFieldBuilder();
          getFightPropListFieldBuilder();
          getAnimatorParaListFieldBuilder();
          getEntityEnvironmentInfoListFieldBuilder();
          getServerBuffListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityType_ = 0;

        entityId_ = 0;

        name_ = "";

        if (motionInfoBuilder_ == null) {
          motionInfo_ = null;
        } else {
          motionInfo_ = null;
          motionInfoBuilder_ = null;
        }
        if (propListBuilder_ == null) {
          propList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          propListBuilder_.clear();
        }
        if (fightPropListBuilder_ == null) {
          fightPropList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          fightPropListBuilder_.clear();
        }
        lifeState_ = 0;

        if (animatorParaListBuilder_ == null) {
          animatorParaList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          animatorParaListBuilder_.clear();
        }
        lastMoveSceneTimeMs_ = 0;

        lastMoveReliableSeq_ = 0;

        if (entityClientDataBuilder_ == null) {
          entityClientData_ = null;
        } else {
          entityClientData_ = null;
          entityClientDataBuilder_ = null;
        }
        if (entityEnvironmentInfoListBuilder_ == null) {
          entityEnvironmentInfoList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          entityEnvironmentInfoListBuilder_.clear();
        }
        if (entityAuthorityInfoBuilder_ == null) {
          entityAuthorityInfo_ = null;
        } else {
          entityAuthorityInfo_ = null;
          entityAuthorityInfoBuilder_ = null;
        }
        tagList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (serverBuffListBuilder_ == null) {
          serverBuffList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          serverBuffListBuilder_.clear();
        }
        entityCase_ = 0;
        entity_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.internal_static_SceneEntityInfo_descriptor;
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo getDefaultInstanceForType() {
        return emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.getDefaultInstance();
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo build() {
        emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo buildPartial() {
        emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo result = new emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo(this);
        int from_bitField0_ = bitField0_;
        result.entityType_ = entityType_;
        result.entityId_ = entityId_;
        result.name_ = name_;
        if (motionInfoBuilder_ == null) {
          result.motionInfo_ = motionInfo_;
        } else {
          result.motionInfo_ = motionInfoBuilder_.build();
        }
        if (propListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            propList_ = java.util.Collections.unmodifiableList(propList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.propList_ = propList_;
        } else {
          result.propList_ = propListBuilder_.build();
        }
        if (fightPropListBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            fightPropList_ = java.util.Collections.unmodifiableList(fightPropList_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.fightPropList_ = fightPropList_;
        } else {
          result.fightPropList_ = fightPropListBuilder_.build();
        }
        result.lifeState_ = lifeState_;
        if (animatorParaListBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            animatorParaList_ = java.util.Collections.unmodifiableList(animatorParaList_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.animatorParaList_ = animatorParaList_;
        } else {
          result.animatorParaList_ = animatorParaListBuilder_.build();
        }
        result.lastMoveSceneTimeMs_ = lastMoveSceneTimeMs_;
        result.lastMoveReliableSeq_ = lastMoveReliableSeq_;
        if (entityClientDataBuilder_ == null) {
          result.entityClientData_ = entityClientData_;
        } else {
          result.entityClientData_ = entityClientDataBuilder_.build();
        }
        if (entityEnvironmentInfoListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            entityEnvironmentInfoList_ = java.util.Collections.unmodifiableList(entityEnvironmentInfoList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.entityEnvironmentInfoList_ = entityEnvironmentInfoList_;
        } else {
          result.entityEnvironmentInfoList_ = entityEnvironmentInfoListBuilder_.build();
        }
        if (entityAuthorityInfoBuilder_ == null) {
          result.entityAuthorityInfo_ = entityAuthorityInfo_;
        } else {
          result.entityAuthorityInfo_ = entityAuthorityInfoBuilder_.build();
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          tagList_ = tagList_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.tagList_ = tagList_;
        if (serverBuffListBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            serverBuffList_ = java.util.Collections.unmodifiableList(serverBuffList_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.serverBuffList_ = serverBuffList_;
        } else {
          result.serverBuffList_ = serverBuffListBuilder_.build();
        }
        if (entityCase_ == 10) {
          if (avatarBuilder_ == null) {
            result.entity_ = entity_;
          } else {
            result.entity_ = avatarBuilder_.build();
          }
        }
        if (entityCase_ == 11) {
          if (monsterBuilder_ == null) {
            result.entity_ = entity_;
          } else {
            result.entity_ = monsterBuilder_.build();
          }
        }
        if (entityCase_ == 12) {
          if (npcBuilder_ == null) {
            result.entity_ = entity_;
          } else {
            result.entity_ = npcBuilder_.build();
          }
        }
        if (entityCase_ == 13) {
          if (gadgetBuilder_ == null) {
            result.entity_ = entity_;
          } else {
            result.entity_ = gadgetBuilder_.build();
          }
        }
        result.entityCase_ = entityCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo) {
          return mergeFrom((emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo other) {
        if (other == emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo.getDefaultInstance()) return this;
        if (other.entityType_ != 0) {
          setEntityTypeValue(other.getEntityTypeValue());
        }
        if (other.getEntityId() != 0) {
          setEntityId(other.getEntityId());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.hasMotionInfo()) {
          mergeMotionInfo(other.getMotionInfo());
        }
        if (propListBuilder_ == null) {
          if (!other.propList_.isEmpty()) {
            if (propList_.isEmpty()) {
              propList_ = other.propList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePropListIsMutable();
              propList_.addAll(other.propList_);
            }
            onChanged();
          }
        } else {
          if (!other.propList_.isEmpty()) {
            if (propListBuilder_.isEmpty()) {
              propListBuilder_.dispose();
              propListBuilder_ = null;
              propList_ = other.propList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              propListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPropListFieldBuilder() : null;
            } else {
              propListBuilder_.addAllMessages(other.propList_);
            }
          }
        }
        if (fightPropListBuilder_ == null) {
          if (!other.fightPropList_.isEmpty()) {
            if (fightPropList_.isEmpty()) {
              fightPropList_ = other.fightPropList_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureFightPropListIsMutable();
              fightPropList_.addAll(other.fightPropList_);
            }
            onChanged();
          }
        } else {
          if (!other.fightPropList_.isEmpty()) {
            if (fightPropListBuilder_.isEmpty()) {
              fightPropListBuilder_.dispose();
              fightPropListBuilder_ = null;
              fightPropList_ = other.fightPropList_;
              bitField0_ = (bitField0_ & ~0x00000002);
              fightPropListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFightPropListFieldBuilder() : null;
            } else {
              fightPropListBuilder_.addAllMessages(other.fightPropList_);
            }
          }
        }
        if (other.getLifeState() != 0) {
          setLifeState(other.getLifeState());
        }
        if (animatorParaListBuilder_ == null) {
          if (!other.animatorParaList_.isEmpty()) {
            if (animatorParaList_.isEmpty()) {
              animatorParaList_ = other.animatorParaList_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureAnimatorParaListIsMutable();
              animatorParaList_.addAll(other.animatorParaList_);
            }
            onChanged();
          }
        } else {
          if (!other.animatorParaList_.isEmpty()) {
            if (animatorParaListBuilder_.isEmpty()) {
              animatorParaListBuilder_.dispose();
              animatorParaListBuilder_ = null;
              animatorParaList_ = other.animatorParaList_;
              bitField0_ = (bitField0_ & ~0x00000004);
              animatorParaListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAnimatorParaListFieldBuilder() : null;
            } else {
              animatorParaListBuilder_.addAllMessages(other.animatorParaList_);
            }
          }
        }
        if (other.getLastMoveSceneTimeMs() != 0) {
          setLastMoveSceneTimeMs(other.getLastMoveSceneTimeMs());
        }
        if (other.getLastMoveReliableSeq() != 0) {
          setLastMoveReliableSeq(other.getLastMoveReliableSeq());
        }
        if (other.hasEntityClientData()) {
          mergeEntityClientData(other.getEntityClientData());
        }
        if (entityEnvironmentInfoListBuilder_ == null) {
          if (!other.entityEnvironmentInfoList_.isEmpty()) {
            if (entityEnvironmentInfoList_.isEmpty()) {
              entityEnvironmentInfoList_ = other.entityEnvironmentInfoList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureEntityEnvironmentInfoListIsMutable();
              entityEnvironmentInfoList_.addAll(other.entityEnvironmentInfoList_);
            }
            onChanged();
          }
        } else {
          if (!other.entityEnvironmentInfoList_.isEmpty()) {
            if (entityEnvironmentInfoListBuilder_.isEmpty()) {
              entityEnvironmentInfoListBuilder_.dispose();
              entityEnvironmentInfoListBuilder_ = null;
              entityEnvironmentInfoList_ = other.entityEnvironmentInfoList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              entityEnvironmentInfoListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEntityEnvironmentInfoListFieldBuilder() : null;
            } else {
              entityEnvironmentInfoListBuilder_.addAllMessages(other.entityEnvironmentInfoList_);
            }
          }
        }
        if (other.hasEntityAuthorityInfo()) {
          mergeEntityAuthorityInfo(other.getEntityAuthorityInfo());
        }
        if (!other.tagList_.isEmpty()) {
          if (tagList_.isEmpty()) {
            tagList_ = other.tagList_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureTagListIsMutable();
            tagList_.addAll(other.tagList_);
          }
          onChanged();
        }
        if (serverBuffListBuilder_ == null) {
          if (!other.serverBuffList_.isEmpty()) {
            if (serverBuffList_.isEmpty()) {
              serverBuffList_ = other.serverBuffList_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureServerBuffListIsMutable();
              serverBuffList_.addAll(other.serverBuffList_);
            }
            onChanged();
          }
        } else {
          if (!other.serverBuffList_.isEmpty()) {
            if (serverBuffListBuilder_.isEmpty()) {
              serverBuffListBuilder_.dispose();
              serverBuffListBuilder_ = null;
              serverBuffList_ = other.serverBuffList_;
              bitField0_ = (bitField0_ & ~0x00000020);
              serverBuffListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServerBuffListFieldBuilder() : null;
            } else {
              serverBuffListBuilder_.addAllMessages(other.serverBuffList_);
            }
          }
        }
        switch (other.getEntityCase()) {
          case AVATAR: {
            mergeAvatar(other.getAvatar());
            break;
          }
          case MONSTER: {
            mergeMonster(other.getMonster());
            break;
          }
          case NPC: {
            mergeNpc(other.getNpc());
            break;
          }
          case GADGET: {
            mergeGadget(other.getGadget());
            break;
          }
          case ENTITY_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int entityCase_ = 0;
      private java.lang.Object entity_;
      public EntityCase
          getEntityCase() {
        return EntityCase.forNumber(
            entityCase_);
      }

      public Builder clearEntity() {
        entityCase_ = 0;
        entity_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int entityType_ = 0;
      /**
       * <code>.ProtEntityType entity_type = 1;</code>
       * @return The enum numeric value on the wire for entityType.
       */
      @java.lang.Override public int getEntityTypeValue() {
        return entityType_;
      }
      /**
       * <code>.ProtEntityType entity_type = 1;</code>
       * @param value The enum numeric value on the wire for entityType to set.
       * @return This builder for chaining.
       */
      public Builder setEntityTypeValue(int value) {
        
        entityType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.ProtEntityType entity_type = 1;</code>
       * @return The entityType.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType getEntityType() {
        @SuppressWarnings("deprecation")
        emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType result = emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.valueOf(entityType_);
        return result == null ? emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType.UNRECOGNIZED : result;
      }
      /**
       * <code>.ProtEntityType entity_type = 1;</code>
       * @param value The entityType to set.
       * @return This builder for chaining.
       */
      public Builder setEntityType(emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        entityType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.ProtEntityType entity_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityType() {
        
        entityType_ = 0;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * <code>uint32 entity_id = 2;</code>
       * @return The entityId.
       */
      @java.lang.Override
      public int getEntityId() {
        return entityId_;
      }
      /**
       * <code>uint32 entity_id = 2;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(int value) {
        
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 entity_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        
        entityId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <code>string name = 3;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string name = 3;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 3;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>string name = 3;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo motionInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder> motionInfoBuilder_;
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       * @return Whether the motionInfo field is set.
       */
      public boolean hasMotionInfo() {
        return motionInfoBuilder_ != null || motionInfo_ != null;
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       * @return The motionInfo.
       */
      public emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo getMotionInfo() {
        if (motionInfoBuilder_ == null) {
          return motionInfo_ == null ? emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.getDefaultInstance() : motionInfo_;
        } else {
          return motionInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public Builder setMotionInfo(emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo value) {
        if (motionInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          motionInfo_ = value;
          onChanged();
        } else {
          motionInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public Builder setMotionInfo(
          emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder builderForValue) {
        if (motionInfoBuilder_ == null) {
          motionInfo_ = builderForValue.build();
          onChanged();
        } else {
          motionInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public Builder mergeMotionInfo(emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo value) {
        if (motionInfoBuilder_ == null) {
          if (motionInfo_ != null) {
            motionInfo_ =
              emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.newBuilder(motionInfo_).mergeFrom(value).buildPartial();
          } else {
            motionInfo_ = value;
          }
          onChanged();
        } else {
          motionInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public Builder clearMotionInfo() {
        if (motionInfoBuilder_ == null) {
          motionInfo_ = null;
          onChanged();
        } else {
          motionInfo_ = null;
          motionInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder getMotionInfoBuilder() {
        
        onChanged();
        return getMotionInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      public emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder getMotionInfoOrBuilder() {
        if (motionInfoBuilder_ != null) {
          return motionInfoBuilder_.getMessageOrBuilder();
        } else {
          return motionInfo_ == null ?
              emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.getDefaultInstance() : motionInfo_;
        }
      }
      /**
       * <code>.MotionInfo motion_info = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder> 
          getMotionInfoFieldBuilder() {
        if (motionInfoBuilder_ == null) {
          motionInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo.Builder, emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfoOrBuilder>(
                  getMotionInfo(),
                  getParentForChildren(),
                  isClean());
          motionInfo_ = null;
        }
        return motionInfoBuilder_;
      }

      private java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair> propList_ =
        java.util.Collections.emptyList();
      private void ensurePropListIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          propList_ = new java.util.ArrayList<emu.grasscutter.net.proto.PropPairOuterClass.PropPair>(propList_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.PropPairOuterClass.PropPair, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder, emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder> propListBuilder_;

      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair> getPropListList() {
        if (propListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(propList_);
        } else {
          return propListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public int getPropListCount() {
        if (propListBuilder_ == null) {
          return propList_.size();
        } else {
          return propListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public emu.grasscutter.net.proto.PropPairOuterClass.PropPair getPropList(int index) {
        if (propListBuilder_ == null) {
          return propList_.get(index);
        } else {
          return propListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder setPropList(
          int index, emu.grasscutter.net.proto.PropPairOuterClass.PropPair value) {
        if (propListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePropListIsMutable();
          propList_.set(index, value);
          onChanged();
        } else {
          propListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder setPropList(
          int index, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder builderForValue) {
        if (propListBuilder_ == null) {
          ensurePropListIsMutable();
          propList_.set(index, builderForValue.build());
          onChanged();
        } else {
          propListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder addPropList(emu.grasscutter.net.proto.PropPairOuterClass.PropPair value) {
        if (propListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePropListIsMutable();
          propList_.add(value);
          onChanged();
        } else {
          propListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder addPropList(
          int index, emu.grasscutter.net.proto.PropPairOuterClass.PropPair value) {
        if (propListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePropListIsMutable();
          propList_.add(index, value);
          onChanged();
        } else {
          propListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder addPropList(
          emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder builderForValue) {
        if (propListBuilder_ == null) {
          ensurePropListIsMutable();
          propList_.add(builderForValue.build());
          onChanged();
        } else {
          propListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder addPropList(
          int index, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder builderForValue) {
        if (propListBuilder_ == null) {
          ensurePropListIsMutable();
          propList_.add(index, builderForValue.build());
          onChanged();
        } else {
          propListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder addAllPropList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.PropPairOuterClass.PropPair> values) {
        if (propListBuilder_ == null) {
          ensurePropListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, propList_);
          onChanged();
        } else {
          propListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder clearPropList() {
        if (propListBuilder_ == null) {
          propList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          propListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public Builder removePropList(int index) {
        if (propListBuilder_ == null) {
          ensurePropListIsMutable();
          propList_.remove(index);
          onChanged();
        } else {
          propListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder getPropListBuilder(
          int index) {
        return getPropListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder getPropListOrBuilder(
          int index) {
        if (propListBuilder_ == null) {
          return propList_.get(index);  } else {
          return propListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder> 
           getPropListOrBuilderList() {
        if (propListBuilder_ != null) {
          return propListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(propList_);
        }
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder addPropListBuilder() {
        return getPropListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.PropPairOuterClass.PropPair.getDefaultInstance());
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder addPropListBuilder(
          int index) {
        return getPropListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.getDefaultInstance());
      }
      /**
       * <code>repeated .PropPair prop_list = 5;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder> 
           getPropListBuilderList() {
        return getPropListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.PropPairOuterClass.PropPair, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder, emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder> 
          getPropListFieldBuilder() {
        if (propListBuilder_ == null) {
          propListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.PropPairOuterClass.PropPair, emu.grasscutter.net.proto.PropPairOuterClass.PropPair.Builder, emu.grasscutter.net.proto.PropPairOuterClass.PropPairOrBuilder>(
                  propList_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          propList_ = null;
        }
        return propListBuilder_;
      }

      private java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> fightPropList_ =
        java.util.Collections.emptyList();
      private void ensureFightPropListIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          fightPropList_ = new java.util.ArrayList<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair>(fightPropList_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder> fightPropListBuilder_;

      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> getFightPropListList() {
        if (fightPropListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(fightPropList_);
        } else {
          return fightPropListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public int getFightPropListCount() {
        if (fightPropListBuilder_ == null) {
          return fightPropList_.size();
        } else {
          return fightPropListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair getFightPropList(int index) {
        if (fightPropListBuilder_ == null) {
          return fightPropList_.get(index);
        } else {
          return fightPropListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder setFightPropList(
          int index, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair value) {
        if (fightPropListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFightPropListIsMutable();
          fightPropList_.set(index, value);
          onChanged();
        } else {
          fightPropListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder setFightPropList(
          int index, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder builderForValue) {
        if (fightPropListBuilder_ == null) {
          ensureFightPropListIsMutable();
          fightPropList_.set(index, builderForValue.build());
          onChanged();
        } else {
          fightPropListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder addFightPropList(emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair value) {
        if (fightPropListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFightPropListIsMutable();
          fightPropList_.add(value);
          onChanged();
        } else {
          fightPropListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder addFightPropList(
          int index, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair value) {
        if (fightPropListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFightPropListIsMutable();
          fightPropList_.add(index, value);
          onChanged();
        } else {
          fightPropListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder addFightPropList(
          emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder builderForValue) {
        if (fightPropListBuilder_ == null) {
          ensureFightPropListIsMutable();
          fightPropList_.add(builderForValue.build());
          onChanged();
        } else {
          fightPropListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder addFightPropList(
          int index, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder builderForValue) {
        if (fightPropListBuilder_ == null) {
          ensureFightPropListIsMutable();
          fightPropList_.add(index, builderForValue.build());
          onChanged();
        } else {
          fightPropListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder addAllFightPropList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair> values) {
        if (fightPropListBuilder_ == null) {
          ensureFightPropListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, fightPropList_);
          onChanged();
        } else {
          fightPropListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder clearFightPropList() {
        if (fightPropListBuilder_ == null) {
          fightPropList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          fightPropListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public Builder removeFightPropList(int index) {
        if (fightPropListBuilder_ == null) {
          ensureFightPropListIsMutable();
          fightPropList_.remove(index);
          onChanged();
        } else {
          fightPropListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder getFightPropListBuilder(
          int index) {
        return getFightPropListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder getFightPropListOrBuilder(
          int index) {
        if (fightPropListBuilder_ == null) {
          return fightPropList_.get(index);  } else {
          return fightPropListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder> 
           getFightPropListOrBuilderList() {
        if (fightPropListBuilder_ != null) {
          return fightPropListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(fightPropList_);
        }
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder addFightPropListBuilder() {
        return getFightPropListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.getDefaultInstance());
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder addFightPropListBuilder(
          int index) {
        return getFightPropListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.getDefaultInstance());
      }
      /**
       * <code>repeated .FightPropPair fight_prop_list = 6;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder> 
           getFightPropListBuilderList() {
        return getFightPropListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder> 
          getFightPropListFieldBuilder() {
        if (fightPropListBuilder_ == null) {
          fightPropListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair.Builder, emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPairOrBuilder>(
                  fightPropList_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          fightPropList_ = null;
        }
        return fightPropListBuilder_;
      }

      private int lifeState_ ;
      /**
       * <code>uint32 life_state = 7;</code>
       * @return The lifeState.
       */
      @java.lang.Override
      public int getLifeState() {
        return lifeState_;
      }
      /**
       * <code>uint32 life_state = 7;</code>
       * @param value The lifeState to set.
       * @return This builder for chaining.
       */
      public Builder setLifeState(int value) {
        
        lifeState_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 life_state = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLifeState() {
        
        lifeState_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> animatorParaList_ =
        java.util.Collections.emptyList();
      private void ensureAnimatorParaListIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          animatorParaList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair>(animatorParaList_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder> animatorParaListBuilder_;

      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> getAnimatorParaListList() {
        if (animatorParaListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(animatorParaList_);
        } else {
          return animatorParaListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public int getAnimatorParaListCount() {
        if (animatorParaListBuilder_ == null) {
          return animatorParaList_.size();
        } else {
          return animatorParaListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair getAnimatorParaList(int index) {
        if (animatorParaListBuilder_ == null) {
          return animatorParaList_.get(index);
        } else {
          return animatorParaListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder setAnimatorParaList(
          int index, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair value) {
        if (animatorParaListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnimatorParaListIsMutable();
          animatorParaList_.set(index, value);
          onChanged();
        } else {
          animatorParaListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder setAnimatorParaList(
          int index, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder builderForValue) {
        if (animatorParaListBuilder_ == null) {
          ensureAnimatorParaListIsMutable();
          animatorParaList_.set(index, builderForValue.build());
          onChanged();
        } else {
          animatorParaListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder addAnimatorParaList(emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair value) {
        if (animatorParaListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnimatorParaListIsMutable();
          animatorParaList_.add(value);
          onChanged();
        } else {
          animatorParaListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder addAnimatorParaList(
          int index, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair value) {
        if (animatorParaListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnimatorParaListIsMutable();
          animatorParaList_.add(index, value);
          onChanged();
        } else {
          animatorParaListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder addAnimatorParaList(
          emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder builderForValue) {
        if (animatorParaListBuilder_ == null) {
          ensureAnimatorParaListIsMutable();
          animatorParaList_.add(builderForValue.build());
          onChanged();
        } else {
          animatorParaListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder addAnimatorParaList(
          int index, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder builderForValue) {
        if (animatorParaListBuilder_ == null) {
          ensureAnimatorParaListIsMutable();
          animatorParaList_.add(index, builderForValue.build());
          onChanged();
        } else {
          animatorParaListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder addAllAnimatorParaList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair> values) {
        if (animatorParaListBuilder_ == null) {
          ensureAnimatorParaListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, animatorParaList_);
          onChanged();
        } else {
          animatorParaListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder clearAnimatorParaList() {
        if (animatorParaListBuilder_ == null) {
          animatorParaList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          animatorParaListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public Builder removeAnimatorParaList(int index) {
        if (animatorParaListBuilder_ == null) {
          ensureAnimatorParaListIsMutable();
          animatorParaList_.remove(index);
          onChanged();
        } else {
          animatorParaListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder getAnimatorParaListBuilder(
          int index) {
        return getAnimatorParaListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder getAnimatorParaListOrBuilder(
          int index) {
        if (animatorParaListBuilder_ == null) {
          return animatorParaList_.get(index);  } else {
          return animatorParaListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder> 
           getAnimatorParaListOrBuilderList() {
        if (animatorParaListBuilder_ != null) {
          return animatorParaListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(animatorParaList_);
        }
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder addAnimatorParaListBuilder() {
        return getAnimatorParaListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.getDefaultInstance());
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder addAnimatorParaListBuilder(
          int index) {
        return getAnimatorParaListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.getDefaultInstance());
      }
      /**
       * <code>repeated .AnimatorParameterValueInfoPair animator_para_list = 9;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder> 
           getAnimatorParaListBuilderList() {
        return getAnimatorParaListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder> 
          getAnimatorParaListFieldBuilder() {
        if (animatorParaListBuilder_ == null) {
          animatorParaListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair.Builder, emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPairOrBuilder>(
                  animatorParaList_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          animatorParaList_ = null;
        }
        return animatorParaListBuilder_;
      }

      private int lastMoveSceneTimeMs_ ;
      /**
       * <code>uint32 last_move_scene_time_ms = 17;</code>
       * @return The lastMoveSceneTimeMs.
       */
      @java.lang.Override
      public int getLastMoveSceneTimeMs() {
        return lastMoveSceneTimeMs_;
      }
      /**
       * <code>uint32 last_move_scene_time_ms = 17;</code>
       * @param value The lastMoveSceneTimeMs to set.
       * @return This builder for chaining.
       */
      public Builder setLastMoveSceneTimeMs(int value) {
        
        lastMoveSceneTimeMs_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 last_move_scene_time_ms = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastMoveSceneTimeMs() {
        
        lastMoveSceneTimeMs_ = 0;
        onChanged();
        return this;
      }

      private int lastMoveReliableSeq_ ;
      /**
       * <code>uint32 last_move_reliable_seq = 18;</code>
       * @return The lastMoveReliableSeq.
       */
      @java.lang.Override
      public int getLastMoveReliableSeq() {
        return lastMoveReliableSeq_;
      }
      /**
       * <code>uint32 last_move_reliable_seq = 18;</code>
       * @param value The lastMoveReliableSeq to set.
       * @return This builder for chaining.
       */
      public Builder setLastMoveReliableSeq(int value) {
        
        lastMoveReliableSeq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 last_move_reliable_seq = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastMoveReliableSeq() {
        
        lastMoveReliableSeq_ = 0;
        onChanged();
        return this;
      }

      private emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData entityClientData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder> entityClientDataBuilder_;
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       * @return Whether the entityClientData field is set.
       */
      public boolean hasEntityClientData() {
        return entityClientDataBuilder_ != null || entityClientData_ != null;
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       * @return The entityClientData.
       */
      public emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData getEntityClientData() {
        if (entityClientDataBuilder_ == null) {
          return entityClientData_ == null ? emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.getDefaultInstance() : entityClientData_;
        } else {
          return entityClientDataBuilder_.getMessage();
        }
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public Builder setEntityClientData(emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData value) {
        if (entityClientDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entityClientData_ = value;
          onChanged();
        } else {
          entityClientDataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public Builder setEntityClientData(
          emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder builderForValue) {
        if (entityClientDataBuilder_ == null) {
          entityClientData_ = builderForValue.build();
          onChanged();
        } else {
          entityClientDataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public Builder mergeEntityClientData(emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData value) {
        if (entityClientDataBuilder_ == null) {
          if (entityClientData_ != null) {
            entityClientData_ =
              emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.newBuilder(entityClientData_).mergeFrom(value).buildPartial();
          } else {
            entityClientData_ = value;
          }
          onChanged();
        } else {
          entityClientDataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public Builder clearEntityClientData() {
        if (entityClientDataBuilder_ == null) {
          entityClientData_ = null;
          onChanged();
        } else {
          entityClientData_ = null;
          entityClientDataBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder getEntityClientDataBuilder() {
        
        onChanged();
        return getEntityClientDataFieldBuilder().getBuilder();
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      public emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder getEntityClientDataOrBuilder() {
        if (entityClientDataBuilder_ != null) {
          return entityClientDataBuilder_.getMessageOrBuilder();
        } else {
          return entityClientData_ == null ?
              emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.getDefaultInstance() : entityClientData_;
        }
      }
      /**
       * <code>.EntityClientData entity_client_data = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder> 
          getEntityClientDataFieldBuilder() {
        if (entityClientDataBuilder_ == null) {
          entityClientDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData.Builder, emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientDataOrBuilder>(
                  getEntityClientData(),
                  getParentForChildren(),
                  isClean());
          entityClientData_ = null;
        }
        return entityClientDataBuilder_;
      }

      private java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> entityEnvironmentInfoList_ =
        java.util.Collections.emptyList();
      private void ensureEntityEnvironmentInfoListIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          entityEnvironmentInfoList_ = new java.util.ArrayList<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo>(entityEnvironmentInfoList_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder> entityEnvironmentInfoListBuilder_;

      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> getEntityEnvironmentInfoListList() {
        if (entityEnvironmentInfoListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entityEnvironmentInfoList_);
        } else {
          return entityEnvironmentInfoListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public int getEntityEnvironmentInfoListCount() {
        if (entityEnvironmentInfoListBuilder_ == null) {
          return entityEnvironmentInfoList_.size();
        } else {
          return entityEnvironmentInfoListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo getEntityEnvironmentInfoList(int index) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          return entityEnvironmentInfoList_.get(index);
        } else {
          return entityEnvironmentInfoListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder setEntityEnvironmentInfoList(
          int index, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo value) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.set(index, value);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder setEntityEnvironmentInfoList(
          int index, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder builderForValue) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.set(index, builderForValue.build());
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder addEntityEnvironmentInfoList(emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo value) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.add(value);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder addEntityEnvironmentInfoList(
          int index, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo value) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.add(index, value);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder addEntityEnvironmentInfoList(
          emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder builderForValue) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.add(builderForValue.build());
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder addEntityEnvironmentInfoList(
          int index, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder builderForValue) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.add(index, builderForValue.build());
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder addAllEntityEnvironmentInfoList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo> values) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          ensureEntityEnvironmentInfoListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entityEnvironmentInfoList_);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder clearEntityEnvironmentInfoList() {
        if (entityEnvironmentInfoListBuilder_ == null) {
          entityEnvironmentInfoList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public Builder removeEntityEnvironmentInfoList(int index) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          ensureEntityEnvironmentInfoListIsMutable();
          entityEnvironmentInfoList_.remove(index);
          onChanged();
        } else {
          entityEnvironmentInfoListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder getEntityEnvironmentInfoListBuilder(
          int index) {
        return getEntityEnvironmentInfoListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder getEntityEnvironmentInfoListOrBuilder(
          int index) {
        if (entityEnvironmentInfoListBuilder_ == null) {
          return entityEnvironmentInfoList_.get(index);  } else {
          return entityEnvironmentInfoListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder> 
           getEntityEnvironmentInfoListOrBuilderList() {
        if (entityEnvironmentInfoListBuilder_ != null) {
          return entityEnvironmentInfoListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entityEnvironmentInfoList_);
        }
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder addEntityEnvironmentInfoListBuilder() {
        return getEntityEnvironmentInfoListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder addEntityEnvironmentInfoListBuilder(
          int index) {
        return getEntityEnvironmentInfoListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .EntityEnvironmentInfo entity_environment_info_list = 20;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder> 
           getEntityEnvironmentInfoListBuilderList() {
        return getEntityEnvironmentInfoListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder> 
          getEntityEnvironmentInfoListFieldBuilder() {
        if (entityEnvironmentInfoListBuilder_ == null) {
          entityEnvironmentInfoListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfo.Builder, emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.EntityEnvironmentInfoOrBuilder>(
                  entityEnvironmentInfoList_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          entityEnvironmentInfoList_ = null;
        }
        return entityEnvironmentInfoListBuilder_;
      }

      private emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo entityAuthorityInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder> entityAuthorityInfoBuilder_;
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       * @return Whether the entityAuthorityInfo field is set.
       */
      public boolean hasEntityAuthorityInfo() {
        return entityAuthorityInfoBuilder_ != null || entityAuthorityInfo_ != null;
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       * @return The entityAuthorityInfo.
       */
      public emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo getEntityAuthorityInfo() {
        if (entityAuthorityInfoBuilder_ == null) {
          return entityAuthorityInfo_ == null ? emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.getDefaultInstance() : entityAuthorityInfo_;
        } else {
          return entityAuthorityInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public Builder setEntityAuthorityInfo(emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo value) {
        if (entityAuthorityInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entityAuthorityInfo_ = value;
          onChanged();
        } else {
          entityAuthorityInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public Builder setEntityAuthorityInfo(
          emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder builderForValue) {
        if (entityAuthorityInfoBuilder_ == null) {
          entityAuthorityInfo_ = builderForValue.build();
          onChanged();
        } else {
          entityAuthorityInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public Builder mergeEntityAuthorityInfo(emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo value) {
        if (entityAuthorityInfoBuilder_ == null) {
          if (entityAuthorityInfo_ != null) {
            entityAuthorityInfo_ =
              emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.newBuilder(entityAuthorityInfo_).mergeFrom(value).buildPartial();
          } else {
            entityAuthorityInfo_ = value;
          }
          onChanged();
        } else {
          entityAuthorityInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public Builder clearEntityAuthorityInfo() {
        if (entityAuthorityInfoBuilder_ == null) {
          entityAuthorityInfo_ = null;
          onChanged();
        } else {
          entityAuthorityInfo_ = null;
          entityAuthorityInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder getEntityAuthorityInfoBuilder() {
        
        onChanged();
        return getEntityAuthorityInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      public emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder getEntityAuthorityInfoOrBuilder() {
        if (entityAuthorityInfoBuilder_ != null) {
          return entityAuthorityInfoBuilder_.getMessageOrBuilder();
        } else {
          return entityAuthorityInfo_ == null ?
              emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.getDefaultInstance() : entityAuthorityInfo_;
        }
      }
      /**
       * <code>.EntityAuthorityInfo entity_authority_info = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder> 
          getEntityAuthorityInfoFieldBuilder() {
        if (entityAuthorityInfoBuilder_ == null) {
          entityAuthorityInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo.Builder, emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfoOrBuilder>(
                  getEntityAuthorityInfo(),
                  getParentForChildren(),
                  isClean());
          entityAuthorityInfo_ = null;
        }
        return entityAuthorityInfoBuilder_;
      }

      private com.google.protobuf.LazyStringList tagList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagListIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          tagList_ = new com.google.protobuf.LazyStringArrayList(tagList_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @return A list containing the tagList.
       */
      public com.google.protobuf.ProtocolStringList
          getTagListList() {
        return tagList_.getUnmodifiableView();
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @return The count of tagList.
       */
      public int getTagListCount() {
        return tagList_.size();
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param index The index of the element to return.
       * @return The tagList at the given index.
       */
      public java.lang.String getTagList(int index) {
        return tagList_.get(index);
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param index The index of the value to return.
       * @return The bytes of the tagList at the given index.
       */
      public com.google.protobuf.ByteString
          getTagListBytes(int index) {
        return tagList_.getByteString(index);
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param index The index to set the value at.
       * @param value The tagList to set.
       * @return This builder for chaining.
       */
      public Builder setTagList(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagListIsMutable();
        tagList_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param value The tagList to add.
       * @return This builder for chaining.
       */
      public Builder addTagList(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagListIsMutable();
        tagList_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param values The tagList to add.
       * @return This builder for chaining.
       */
      public Builder addAllTagList(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tagList_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagList() {
        tagList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_list = 22;</code>
       * @param value The bytes of the tagList to add.
       * @return This builder for chaining.
       */
      public Builder addTagListBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagListIsMutable();
        tagList_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> serverBuffList_ =
        java.util.Collections.emptyList();
      private void ensureServerBuffListIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          serverBuffList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff>(serverBuffList_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder> serverBuffListBuilder_;

      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> getServerBuffListList() {
        if (serverBuffListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(serverBuffList_);
        } else {
          return serverBuffListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public int getServerBuffListCount() {
        if (serverBuffListBuilder_ == null) {
          return serverBuffList_.size();
        } else {
          return serverBuffListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff getServerBuffList(int index) {
        if (serverBuffListBuilder_ == null) {
          return serverBuffList_.get(index);
        } else {
          return serverBuffListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder setServerBuffList(
          int index, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff value) {
        if (serverBuffListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerBuffListIsMutable();
          serverBuffList_.set(index, value);
          onChanged();
        } else {
          serverBuffListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder setServerBuffList(
          int index, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder builderForValue) {
        if (serverBuffListBuilder_ == null) {
          ensureServerBuffListIsMutable();
          serverBuffList_.set(index, builderForValue.build());
          onChanged();
        } else {
          serverBuffListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder addServerBuffList(emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff value) {
        if (serverBuffListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerBuffListIsMutable();
          serverBuffList_.add(value);
          onChanged();
        } else {
          serverBuffListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder addServerBuffList(
          int index, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff value) {
        if (serverBuffListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerBuffListIsMutable();
          serverBuffList_.add(index, value);
          onChanged();
        } else {
          serverBuffListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder addServerBuffList(
          emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder builderForValue) {
        if (serverBuffListBuilder_ == null) {
          ensureServerBuffListIsMutable();
          serverBuffList_.add(builderForValue.build());
          onChanged();
        } else {
          serverBuffListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder addServerBuffList(
          int index, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder builderForValue) {
        if (serverBuffListBuilder_ == null) {
          ensureServerBuffListIsMutable();
          serverBuffList_.add(index, builderForValue.build());
          onChanged();
        } else {
          serverBuffListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder addAllServerBuffList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff> values) {
        if (serverBuffListBuilder_ == null) {
          ensureServerBuffListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, serverBuffList_);
          onChanged();
        } else {
          serverBuffListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder clearServerBuffList() {
        if (serverBuffListBuilder_ == null) {
          serverBuffList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          serverBuffListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public Builder removeServerBuffList(int index) {
        if (serverBuffListBuilder_ == null) {
          ensureServerBuffListIsMutable();
          serverBuffList_.remove(index);
          onChanged();
        } else {
          serverBuffListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder getServerBuffListBuilder(
          int index) {
        return getServerBuffListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder getServerBuffListOrBuilder(
          int index) {
        if (serverBuffListBuilder_ == null) {
          return serverBuffList_.get(index);  } else {
          return serverBuffListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder> 
           getServerBuffListOrBuilderList() {
        if (serverBuffListBuilder_ != null) {
          return serverBuffListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(serverBuffList_);
        }
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder addServerBuffListBuilder() {
        return getServerBuffListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.getDefaultInstance());
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder addServerBuffListBuilder(
          int index) {
        return getServerBuffListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.getDefaultInstance());
      }
      /**
       * <code>repeated .ServerBuff server_buff_list = 23;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder> 
           getServerBuffListBuilderList() {
        return getServerBuffListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder> 
          getServerBuffListFieldBuilder() {
        if (serverBuffListBuilder_ == null) {
          serverBuffListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff.Builder, emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuffOrBuilder>(
                  serverBuffList_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          serverBuffList_ = null;
        }
        return serverBuffListBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder> avatarBuilder_;
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       * @return Whether the avatar field is set.
       */
      @java.lang.Override
      public boolean hasAvatar() {
        return entityCase_ == 10;
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       * @return The avatar.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo getAvatar() {
        if (avatarBuilder_ == null) {
          if (entityCase_ == 10) {
            return (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
        } else {
          if (entityCase_ == 10) {
            return avatarBuilder_.getMessage();
          }
          return emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      public Builder setAvatar(emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo value) {
        if (avatarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entity_ = value;
          onChanged();
        } else {
          avatarBuilder_.setMessage(value);
        }
        entityCase_ = 10;
        return this;
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      public Builder setAvatar(
          emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder builderForValue) {
        if (avatarBuilder_ == null) {
          entity_ = builderForValue.build();
          onChanged();
        } else {
          avatarBuilder_.setMessage(builderForValue.build());
        }
        entityCase_ = 10;
        return this;
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      public Builder mergeAvatar(emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo value) {
        if (avatarBuilder_ == null) {
          if (entityCase_ == 10 &&
              entity_ != emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance()) {
            entity_ = emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.newBuilder((emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_)
                .mergeFrom(value).buildPartial();
          } else {
            entity_ = value;
          }
          onChanged();
        } else {
          if (entityCase_ == 10) {
            avatarBuilder_.mergeFrom(value);
          }
          avatarBuilder_.setMessage(value);
        }
        entityCase_ = 10;
        return this;
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      public Builder clearAvatar() {
        if (avatarBuilder_ == null) {
          if (entityCase_ == 10) {
            entityCase_ = 0;
            entity_ = null;
            onChanged();
          }
        } else {
          if (entityCase_ == 10) {
            entityCase_ = 0;
            entity_ = null;
          }
          avatarBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      public emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder getAvatarBuilder() {
        return getAvatarFieldBuilder().getBuilder();
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder getAvatarOrBuilder() {
        if ((entityCase_ == 10) && (avatarBuilder_ != null)) {
          return avatarBuilder_.getMessageOrBuilder();
        } else {
          if (entityCase_ == 10) {
            return (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneAvatarInfo avatar = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder> 
          getAvatarFieldBuilder() {
        if (avatarBuilder_ == null) {
          if (!(entityCase_ == 10)) {
            entity_ = emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.getDefaultInstance();
          }
          avatarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo.Builder, emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfoOrBuilder>(
                  (emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.SceneAvatarInfo) entity_,
                  getParentForChildren(),
                  isClean());
          entity_ = null;
        }
        entityCase_ = 10;
        onChanged();;
        return avatarBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder> monsterBuilder_;
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       * @return Whether the monster field is set.
       */
      @java.lang.Override
      public boolean hasMonster() {
        return entityCase_ == 11;
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       * @return The monster.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo getMonster() {
        if (monsterBuilder_ == null) {
          if (entityCase_ == 11) {
            return (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
        } else {
          if (entityCase_ == 11) {
            return monsterBuilder_.getMessage();
          }
          return emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      public Builder setMonster(emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo value) {
        if (monsterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entity_ = value;
          onChanged();
        } else {
          monsterBuilder_.setMessage(value);
        }
        entityCase_ = 11;
        return this;
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      public Builder setMonster(
          emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder builderForValue) {
        if (monsterBuilder_ == null) {
          entity_ = builderForValue.build();
          onChanged();
        } else {
          monsterBuilder_.setMessage(builderForValue.build());
        }
        entityCase_ = 11;
        return this;
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      public Builder mergeMonster(emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo value) {
        if (monsterBuilder_ == null) {
          if (entityCase_ == 11 &&
              entity_ != emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance()) {
            entity_ = emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.newBuilder((emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_)
                .mergeFrom(value).buildPartial();
          } else {
            entity_ = value;
          }
          onChanged();
        } else {
          if (entityCase_ == 11) {
            monsterBuilder_.mergeFrom(value);
          }
          monsterBuilder_.setMessage(value);
        }
        entityCase_ = 11;
        return this;
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      public Builder clearMonster() {
        if (monsterBuilder_ == null) {
          if (entityCase_ == 11) {
            entityCase_ = 0;
            entity_ = null;
            onChanged();
          }
        } else {
          if (entityCase_ == 11) {
            entityCase_ = 0;
            entity_ = null;
          }
          monsterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder getMonsterBuilder() {
        return getMonsterFieldBuilder().getBuilder();
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder getMonsterOrBuilder() {
        if ((entityCase_ == 11) && (monsterBuilder_ != null)) {
          return monsterBuilder_.getMessageOrBuilder();
        } else {
          if (entityCase_ == 11) {
            return (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneMonsterInfo monster = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder> 
          getMonsterFieldBuilder() {
        if (monsterBuilder_ == null) {
          if (!(entityCase_ == 11)) {
            entity_ = emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.getDefaultInstance();
          }
          monsterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.Builder, emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfoOrBuilder>(
                  (emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo) entity_,
                  getParentForChildren(),
                  isClean());
          entity_ = null;
        }
        entityCase_ = 11;
        onChanged();;
        return monsterBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder> npcBuilder_;
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       * @return Whether the npc field is set.
       */
      @java.lang.Override
      public boolean hasNpc() {
        return entityCase_ == 12;
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       * @return The npc.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo getNpc() {
        if (npcBuilder_ == null) {
          if (entityCase_ == 12) {
            return (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
        } else {
          if (entityCase_ == 12) {
            return npcBuilder_.getMessage();
          }
          return emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      public Builder setNpc(emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo value) {
        if (npcBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entity_ = value;
          onChanged();
        } else {
          npcBuilder_.setMessage(value);
        }
        entityCase_ = 12;
        return this;
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      public Builder setNpc(
          emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder builderForValue) {
        if (npcBuilder_ == null) {
          entity_ = builderForValue.build();
          onChanged();
        } else {
          npcBuilder_.setMessage(builderForValue.build());
        }
        entityCase_ = 12;
        return this;
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      public Builder mergeNpc(emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo value) {
        if (npcBuilder_ == null) {
          if (entityCase_ == 12 &&
              entity_ != emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance()) {
            entity_ = emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.newBuilder((emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_)
                .mergeFrom(value).buildPartial();
          } else {
            entity_ = value;
          }
          onChanged();
        } else {
          if (entityCase_ == 12) {
            npcBuilder_.mergeFrom(value);
          }
          npcBuilder_.setMessage(value);
        }
        entityCase_ = 12;
        return this;
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      public Builder clearNpc() {
        if (npcBuilder_ == null) {
          if (entityCase_ == 12) {
            entityCase_ = 0;
            entity_ = null;
            onChanged();
          }
        } else {
          if (entityCase_ == 12) {
            entityCase_ = 0;
            entity_ = null;
          }
          npcBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      public emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder getNpcBuilder() {
        return getNpcFieldBuilder().getBuilder();
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder getNpcOrBuilder() {
        if ((entityCase_ == 12) && (npcBuilder_ != null)) {
          return npcBuilder_.getMessageOrBuilder();
        } else {
          if (entityCase_ == 12) {
            return (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneNpcInfo npc = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder> 
          getNpcFieldBuilder() {
        if (npcBuilder_ == null) {
          if (!(entityCase_ == 12)) {
            entity_ = emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.getDefaultInstance();
          }
          npcBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo.Builder, emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfoOrBuilder>(
                  (emu.grasscutter.net.proto.SceneNpcInfoOuterClass.SceneNpcInfo) entity_,
                  getParentForChildren(),
                  isClean());
          entity_ = null;
        }
        entityCase_ = 12;
        onChanged();;
        return npcBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder> gadgetBuilder_;
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       * @return Whether the gadget field is set.
       */
      @java.lang.Override
      public boolean hasGadget() {
        return entityCase_ == 13;
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       * @return The gadget.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo getGadget() {
        if (gadgetBuilder_ == null) {
          if (entityCase_ == 13) {
            return (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
        } else {
          if (entityCase_ == 13) {
            return gadgetBuilder_.getMessage();
          }
          return emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      public Builder setGadget(emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo value) {
        if (gadgetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entity_ = value;
          onChanged();
        } else {
          gadgetBuilder_.setMessage(value);
        }
        entityCase_ = 13;
        return this;
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      public Builder setGadget(
          emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder builderForValue) {
        if (gadgetBuilder_ == null) {
          entity_ = builderForValue.build();
          onChanged();
        } else {
          gadgetBuilder_.setMessage(builderForValue.build());
        }
        entityCase_ = 13;
        return this;
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      public Builder mergeGadget(emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo value) {
        if (gadgetBuilder_ == null) {
          if (entityCase_ == 13 &&
              entity_ != emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance()) {
            entity_ = emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.newBuilder((emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_)
                .mergeFrom(value).buildPartial();
          } else {
            entity_ = value;
          }
          onChanged();
        } else {
          if (entityCase_ == 13) {
            gadgetBuilder_.mergeFrom(value);
          }
          gadgetBuilder_.setMessage(value);
        }
        entityCase_ = 13;
        return this;
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      public Builder clearGadget() {
        if (gadgetBuilder_ == null) {
          if (entityCase_ == 13) {
            entityCase_ = 0;
            entity_ = null;
            onChanged();
          }
        } else {
          if (entityCase_ == 13) {
            entityCase_ = 0;
            entity_ = null;
          }
          gadgetBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder getGadgetBuilder() {
        return getGadgetFieldBuilder().getBuilder();
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder getGadgetOrBuilder() {
        if ((entityCase_ == 13) && (gadgetBuilder_ != null)) {
          return gadgetBuilder_.getMessageOrBuilder();
        } else {
          if (entityCase_ == 13) {
            return (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_;
          }
          return emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
        }
      }
      /**
       * <code>.SceneGadgetInfo gadget = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder> 
          getGadgetFieldBuilder() {
        if (gadgetBuilder_ == null) {
          if (!(entityCase_ == 13)) {
            entity_ = emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.getDefaultInstance();
          }
          gadgetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.Builder, emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfoOrBuilder>(
                  (emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo) entity_,
                  getParentForChildren(),
                  isClean());
          entity_ = null;
        }
        entityCase_ = 13;
        onChanged();;
        return gadgetBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:SceneEntityInfo)
    }

    // @@protoc_insertion_point(class_scope:SceneEntityInfo)
    private static final emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo();
    }

    public static emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SceneEntityInfo>
        PARSER = new com.google.protobuf.AbstractParser<SceneEntityInfo>() {
      @java.lang.Override
      public SceneEntityInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SceneEntityInfo(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SceneEntityInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SceneEntityInfo> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SceneEntityInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SceneEntityInfo_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\025SceneEntityInfo.proto\032$AnimatorParamet" +
      "erValueInfoPair.proto\032\031EntityAuthorityIn" +
      "fo.proto\032\026EntityClientData.proto\032\033Entity" +
      "EnvironmentInfo.proto\032\023FightPropPair.pro" +
      "to\032\020MotionInfo.proto\032\016PropPair.proto\032\024Pr" +
      "otEntityType.proto\032\025SceneAvatarInfo.prot" +
      "o\032\025SceneGadgetInfo.proto\032\026SceneMonsterIn" +
      "fo.proto\032\022SceneNpcInfo.proto\032\020ServerBuff" +
      ".proto\"\304\005\n\017SceneEntityInfo\022$\n\013entity_typ" +
      "e\030\001 \001(\0162\017.ProtEntityType\022\021\n\tentity_id\030\002 " +
      "\001(\r\022\014\n\004name\030\003 \001(\t\022 \n\013motion_info\030\004 \001(\0132\013" +
      ".MotionInfo\022\034\n\tprop_list\030\005 \003(\0132\t.PropPai" +
      "r\022\'\n\017fight_prop_list\030\006 \003(\0132\016.FightPropPa" +
      "ir\022\022\n\nlife_state\030\007 \001(\r\022;\n\022animator_para_" +
      "list\030\t \003(\0132\037.AnimatorParameterValueInfoP" +
      "air\022\037\n\027last_move_scene_time_ms\030\021 \001(\r\022\036\n\026" +
      "last_move_reliable_seq\030\022 \001(\r\022-\n\022entity_c" +
      "lient_data\030\023 \001(\0132\021.EntityClientData\022<\n\034e" +
      "ntity_environment_info_list\030\024 \003(\0132\026.Enti" +
      "tyEnvironmentInfo\0223\n\025entity_authority_in" +
      "fo\030\025 \001(\0132\024.EntityAuthorityInfo\022\020\n\010tag_li" +
      "st\030\026 \003(\t\022%\n\020server_buff_list\030\027 \003(\0132\013.Ser" +
      "verBuff\022\"\n\006avatar\030\n \001(\0132\020.SceneAvatarInf" +
      "oH\000\022$\n\007monster\030\013 \001(\0132\021.SceneMonsterInfoH" +
      "\000\022\034\n\003npc\030\014 \001(\0132\r.SceneNpcInfoH\000\022\"\n\006gadge" +
      "t\030\r \001(\0132\020.SceneGadgetInfoH\000B\010\n\006entityB\033\n" +
      "\031emu.grasscutter.net.protob\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.EntityClientDataOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.FightPropPairOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.MotionInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.PropPairOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.ProtEntityTypeOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.SceneNpcInfoOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.ServerBuffOuterClass.getDescriptor(),
        });
    internal_static_SceneEntityInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_SceneEntityInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SceneEntityInfo_descriptor,
        new java.lang.String[] { "EntityType", "EntityId", "Name", "MotionInfo", "PropList", "FightPropList", "LifeState", "AnimatorParaList", "LastMoveSceneTimeMs", "LastMoveReliableSeq", "EntityClientData", "EntityEnvironmentInfoList", "EntityAuthorityInfo", "TagList", "ServerBuffList", "Avatar", "Monster", "Npc", "Gadget", "Entity", });
    emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.getDescriptor();
    emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.EntityClientDataOuterClass.getDescriptor();
    emu.grasscutter.net.proto.EntityEnvironmentInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.FightPropPairOuterClass.getDescriptor();
    emu.grasscutter.net.proto.MotionInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.PropPairOuterClass.getDescriptor();
    emu.grasscutter.net.proto.ProtEntityTypeOuterClass.getDescriptor();
    emu.grasscutter.net.proto.SceneAvatarInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.SceneNpcInfoOuterClass.getDescriptor();
    emu.grasscutter.net.proto.ServerBuffOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
