// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;

import us.hebi.quickbuf.ProtoEnum;
import us.hebi.quickbuf.ProtoUtil;

public final class MultiPathAvatarTypeOuterClass {
  /**
   * Protobuf enum {@code MultiPathAvatarType}
   */
  public enum MultiPathAvatarType implements ProtoEnum<MultiPathAvatarType> {
    /**
     * <code>MultiPathAvatarTypeNone = 0;</code>
     */
    MultiPathAvatarTypeNone("MultiPathAvatarTypeNone", 0),

    /**
     * <code>Mar_7thKnightType = 1001;</code>
     */
    Mar_7thKnightType("Mar_7thKnightType", 1001),

    /**
     * <code>Mar_7thRogueType = 1224;</code>
     */
    Mar_7thRogueType("Mar_7thRogueType", 1224),

    /**
     * <code>BoyWarriorType = 8001;</code>
     */
    BoyWarriorType("BoyWarriorType", 8001),

    /**
     * <code>GirlWarriorType = 8002;</code>
     */
    GirlWarriorType("GirlWarriorType", 8002),

    /**
     * <code>BoyKnightType = 8003;</code>
     */
    BoyKnightType("BoyKnightType", 8003),

    /**
     * <code>GirlKnightType = 8004;</code>
     */
    GirlKnightType("GirlKnightType", 8004),

    /**
     * <code>BoyShamanType = 8005;</code>
     */
    BoyShamanType("BoyShamanType", 8005),

    /**
     * <code>GirlShamanType = 8006;</code>
     */
    GirlShamanType("GirlShamanType", 8006),

    /**
     * <code>BoyMemoryType = 8007;</code>
     */
    BoyMemoryType("BoyMemoryType", 8007),

    /**
     * <code>GirlMemoryType = 8008;</code>
     */
    GirlMemoryType("GirlMemoryType", 8008),

    /**
     * <code>BoyElationType = 8009;</code>
     */
    BoyElationType("BoyElationType", 8009),

    /**
     * <code>GirlElationType = 8010;</code>
     */
    GirlElationType("GirlElationType", 8010);

    /**
     * <code>MultiPathAvatarTypeNone = 0;</code>
     */
    public static final int MultiPathAvatarTypeNone_VALUE = 0;

    /**
     * <code>Mar_7thKnightType = 1001;</code>
     */
    public static final int Mar_7thKnightType_VALUE = 1001;

    /**
     * <code>Mar_7thRogueType = 1224;</code>
     */
    public static final int Mar_7thRogueType_VALUE = 1224;

    /**
     * <code>BoyWarriorType = 8001;</code>
     */
    public static final int BoyWarriorType_VALUE = 8001;

    /**
     * <code>GirlWarriorType = 8002;</code>
     */
    public static final int GirlWarriorType_VALUE = 8002;

    /**
     * <code>BoyKnightType = 8003;</code>
     */
    public static final int BoyKnightType_VALUE = 8003;

    /**
     * <code>GirlKnightType = 8004;</code>
     */
    public static final int GirlKnightType_VALUE = 8004;

    /**
     * <code>BoyShamanType = 8005;</code>
     */
    public static final int BoyShamanType_VALUE = 8005;

    /**
     * <code>GirlShamanType = 8006;</code>
     */
    public static final int GirlShamanType_VALUE = 8006;

    /**
     * <code>BoyMemoryType = 8007;</code>
     */
    public static final int BoyMemoryType_VALUE = 8007;

    /**
     * <code>GirlMemoryType = 8008;</code>
     */
    public static final int GirlMemoryType_VALUE = 8008;

    /**
     * <code>BoyElationType = 8009;</code>
     */
    public static final int BoyElationType_VALUE = 8009;

    /**
     * <code>GirlElationType = 8010;</code>
     */
    public static final int GirlElationType_VALUE = 8010;

    private final String name;

    private final int number;

    private MultiPathAvatarType(String name, int number) {
      this.name = name;
      this.number = number;
    }

    /**
     * @return the string representation of enum entry
     */
    @Override
    public String getName() {
      return name;
    }

    /**
     * @return the numeric wire value of this enum entry
     */
    @Override
    public int getNumber() {
      return number;
    }

    /**
     * @return a converter that maps between this enum's numeric and text representations
     */
    public static ProtoEnum.EnumConverter<MultiPathAvatarType> converter() {
      return MultiPathAvatarTypeConverter.INSTANCE;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value, or null if unknown.
     */
    public static MultiPathAvatarType forNumber(int value) {
      return MultiPathAvatarTypeConverter.INSTANCE.forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @param other Fallback value in case the value is not known.
     * @return The enum associated with the given numeric wire value, or the fallback value if unknown.
     */
    public static MultiPathAvatarType forNumberOr(int number, MultiPathAvatarType other) {
      MultiPathAvatarType value = forNumber(number);
      return value == null ? other : value;
    }

    enum MultiPathAvatarTypeConverter implements ProtoEnum.EnumConverter<MultiPathAvatarType> {
      INSTANCE;

      @Override
      public final MultiPathAvatarType forNumber(final int value) {
        switch(value) {
          case 0: return MultiPathAvatarTypeNone;
          case 1001: return Mar_7thKnightType;
          case 1224: return Mar_7thRogueType;
          case 8001: return BoyWarriorType;
          case 8002: return GirlWarriorType;
          case 8003: return BoyKnightType;
          case 8004: return GirlKnightType;
          case 8005: return BoyShamanType;
          case 8006: return GirlShamanType;
          case 8007: return BoyMemoryType;
          case 8008: return GirlMemoryType;
          case 8009: return BoyElationType;
          case 8010: return GirlElationType;
          default: return null;
        }
      }

      @Override
      public final MultiPathAvatarType forName(final CharSequence value) {
        switch (value.length()) {
          case 13: {
            if (ProtoUtil.isEqual("BoyKnightType", value)) {
              return BoyKnightType;
            }
            if (ProtoUtil.isEqual("BoyShamanType", value)) {
              return BoyShamanType;
            }
            if (ProtoUtil.isEqual("BoyMemoryType", value)) {
              return BoyMemoryType;
            }
            break;
          }
          case 14: {
            if (ProtoUtil.isEqual("BoyWarriorType", value)) {
              return BoyWarriorType;
            }
            if (ProtoUtil.isEqual("GirlKnightType", value)) {
              return GirlKnightType;
            }
            if (ProtoUtil.isEqual("GirlShamanType", value)) {
              return GirlShamanType;
            }
            if (ProtoUtil.isEqual("GirlMemoryType", value)) {
              return GirlMemoryType;
            }
            if (ProtoUtil.isEqual("BoyElationType", value)) {
              return BoyElationType;
            }
            break;
          }
          case 15: {
            if (ProtoUtil.isEqual("GirlWarriorType", value)) {
              return GirlWarriorType;
            }
            if (ProtoUtil.isEqual("GirlElationType", value)) {
              return GirlElationType;
            }
            break;
          }
          case 16: {
            if (ProtoUtil.isEqual("Mar_7thRogueType", value)) {
              return Mar_7thRogueType;
            }
            break;
          }
          case 17: {
            if (ProtoUtil.isEqual("Mar_7thKnightType", value)) {
              return Mar_7thKnightType;
            }
            break;
          }
          case 23: {
            if (ProtoUtil.isEqual("MultiPathAvatarTypeNone", value)) {
              return MultiPathAvatarTypeNone;
            }
            break;
          }
        }
        return null;
      }
    }
  }
}
