// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.

package org.wpilib.vision.apriltag;

/** Loadable AprilTag field layouts. */
public enum AprilTagFields {
  /** 2022 Rapid React. */
  k2022RapidReact("2022-rapidreact.json"),
  /** 2023 Charged Up. */
  k2023ChargedUp("2023-chargedup.json"),
  /** 2024 Crescendo. */
  k2024Crescendo("2024-crescendo.json"),
  /** 2025 Reefscape Welded (see TU 12). */
  k2025ReefscapeWelded("2025-reefscape-welded.json"),
  /** 2025 Reefscape AndyMark (see TU 12). */
  k2025ReefscapeAndyMark("2025-reefscape-andymark.json"),
  /** 2026 Rebuilt Welded. */
  k2026RebuiltWelded("2026-rebuilt-welded.json"),
  /** 2026 Rebuilt AndyMark. */
  k2026RebuiltAndymark("2026-rebuilt-andymark.json");

  /** Base resource directory. */
  public static final String kBaseResourceDir = "/org/wpilib/vision/apriltag/";

  /** Alias to the current game. */
  public static final AprilTagFields kDefaultField = k2026RebuiltWelded;

  /** Resource filename. */
  public final String resourceFile;

  AprilTagFieldLayout fieldLayout;

  AprilTagFields(String resourceFile) {
    this.resourceFile = kBaseResourceDir + resourceFile;
  }
}
