// 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 RogueMiracleSourceOuterClass {
  /**
   * Protobuf enum {@code RogueMiracleSource}
   */
  public enum RogueMiracleSource implements ProtoEnum<RogueMiracleSource> {
    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_NONE = 0;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_NONE("ROGUE_MIRACLE_SOURCE_TYPE_NONE", 0),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_SELECT = 1;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_SELECT("ROGUE_MIRACLE_SOURCE_TYPE_SELECT", 1),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE = 2;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE("ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE", 2),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_BONUS = 3;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_BONUS("ROGUE_MIRACLE_SOURCE_TYPE_BONUS", 3),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_USE = 4;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_USE("ROGUE_MIRACLE_SOURCE_TYPE_USE", 4),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_RESET = 5;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_RESET("ROGUE_MIRACLE_SOURCE_TYPE_RESET", 5),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_REPLACE = 6;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_REPLACE("ROGUE_MIRACLE_SOURCE_TYPE_REPLACE", 6),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_TRADE = 7;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_TRADE("ROGUE_MIRACLE_SOURCE_TYPE_TRADE", 7),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_GET = 8;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_GET("ROGUE_MIRACLE_SOURCE_TYPE_GET", 8),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_SHOP = 9;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_SHOP("ROGUE_MIRACLE_SOURCE_TYPE_SHOP", 9),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL = 10;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL("ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL", 10),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM = 11;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM("ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM", 11),

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START = 12;</code>
     */
    ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START("ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START", 12);

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_NONE = 0;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_NONE_VALUE = 0;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_SELECT = 1;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_SELECT_VALUE = 1;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE = 2;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE_VALUE = 2;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_BONUS = 3;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_BONUS_VALUE = 3;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_USE = 4;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_USE_VALUE = 4;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_RESET = 5;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_RESET_VALUE = 5;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_REPLACE = 6;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_REPLACE_VALUE = 6;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_TRADE = 7;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_TRADE_VALUE = 7;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_GET = 8;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_GET_VALUE = 8;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_SHOP = 9;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_SHOP_VALUE = 9;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL = 10;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL_VALUE = 10;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM = 11;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM_VALUE = 11;

    /**
     * <code>ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START = 12;</code>
     */
    public static final int ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START_VALUE = 12;

    private final String name;

    private final int number;

    private RogueMiracleSource(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<RogueMiracleSource> converter() {
      return RogueMiracleSourceConverter.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 RogueMiracleSource forNumber(int value) {
      return RogueMiracleSourceConverter.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 RogueMiracleSource forNumberOr(int number, RogueMiracleSource other) {
      RogueMiracleSource value = forNumber(number);
      return value == null ? other : value;
    }

    enum RogueMiracleSourceConverter implements ProtoEnum.EnumConverter<RogueMiracleSource> {
      INSTANCE;

      private static final RogueMiracleSource[] lookup = new RogueMiracleSource[13];

      static {
        lookup[0] = ROGUE_MIRACLE_SOURCE_TYPE_NONE;
        lookup[1] = ROGUE_MIRACLE_SOURCE_TYPE_SELECT;
        lookup[2] = ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE;
        lookup[3] = ROGUE_MIRACLE_SOURCE_TYPE_BONUS;
        lookup[4] = ROGUE_MIRACLE_SOURCE_TYPE_USE;
        lookup[5] = ROGUE_MIRACLE_SOURCE_TYPE_RESET;
        lookup[6] = ROGUE_MIRACLE_SOURCE_TYPE_REPLACE;
        lookup[7] = ROGUE_MIRACLE_SOURCE_TYPE_TRADE;
        lookup[8] = ROGUE_MIRACLE_SOURCE_TYPE_GET;
        lookup[9] = ROGUE_MIRACLE_SOURCE_TYPE_SHOP;
        lookup[10] = ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL;
        lookup[11] = ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM;
        lookup[12] = ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START;
      }

      @Override
      public final RogueMiracleSource forNumber(final int value) {
        if (value >= 0 && value < lookup.length) {
          return lookup[value];
        }
        return null;
      }

      @Override
      public final RogueMiracleSource forName(final CharSequence value) {
        switch (value.length()) {
          case 29: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_USE", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_USE;
            }
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_GET", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_GET;
            }
            break;
          }
          case 30: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_NONE", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_NONE;
            }
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_SHOP", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_SHOP;
            }
            break;
          }
          case 31: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_BONUS", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_BONUS;
            }
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_RESET", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_RESET;
            }
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_TRADE", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_TRADE;
            }
            break;
          }
          case 32: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_SELECT", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_SELECT;
            }
            break;
          }
          case 33: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_REPLACE", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_REPLACE;
            }
            break;
          }
          case 34: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_DIALOGUE;
            }
            break;
          }
          case 36: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_MAZE_SKILL;
            }
            break;
          }
          case 41: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_LEVEL_MECHANISM;
            }
            break;
          }
          case 45: {
            if (ProtoUtil.isEqual("ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START", value)) {
              return ROGUE_MIRACLE_SOURCE_TYPE_ENDLESS_LEVEL_START;
            }
            break;
          }
        }
        return null;
      }
    }
  }
}
