content: package emu.grasscutter.data.excels;
  
  import emu.grasscutter.data.GameData;
  import emu.grasscutter.data.GameResource;
  import emu.grasscutter.data.ResourceType;
  import it.unimi.dsi.fastutil.ints.IntCollection;
  import it.unimi.dsi.fastutil.ints.IntList;
  import lombok.Getter;
  
  @ResourceType(name = {"ReliquaryCodexExcelConfigData.json"})
  public class CodexReliquaryData extends GameResource {
      @Getter private int Id;
      @Getter private int suitId;
      @Getter private int level;
      @Getter private int cupId;
      @Getter private int leatherId;
      @Getter private int capId;
      @Getter private int flowerId;
      @Getter private int sandId;
      @Getter private int sortOrder;
      private transient IntCollection ids;
  
      public boolean containsId(int id) {
          return getIds().contains(id);
      }
  
      public IntCollection getIds() {
          if (this.ids == null) {
              int[] idsArr = {cupId, leatherId, capId, flowerId, sandId};
              this.ids = IntList.of(idsArr);
          }
          return this.ids;
      }
  
      @Override
      public void onLoad() {
          // Normalize all itemIds to the 0-substat form
          cupId = (cupId/10) * 10;
          leatherId = (leatherId/10) * 10;
          capId = (capId/10) * 10;
          flowerId = (flowerId/10) * 10;
          sandId = (sandId/10) * 10;
  
          GameData.getCodexReliquaryArrayList().add(this);
          GameData.getCodexReliquaryDataIdMap().put(getSuitId(), this);
      }
  }
  