// Path: src/main/java/com/legobmw99/allomancy/api/enums/Metal.java
// public enum Metal {
//     IRON(true),
//     STEEL,
//     TIN,
//     PEWTER,
//     ZINC,
//     BRASS,
//     COPPER(true),
//     BRONZE,
//     ALUMINUM,
//     DURALUMIN,
//     CHROMIUM,
//     NICROSIL,
//     GOLD(true),
//     ELECTRUM,
//     CADMIUM,
//     BENDALLOY;
// 
// 
//     private final boolean vanilla;
// 
//     Metal() {
//         this(false);
//     }
// 
//     Metal(boolean isVanilla) {
//         this.vanilla = isVanilla;
//     }
// 
//     public static Metal getMetal(int index) {
//         for (Metal metal : values()) {
//             if (metal.getIndex() == index) {
//                 return metal;
//             }
//         }
//         throw new IllegalArgumentException("Allomancy: Bad Metal Index");
//     }
// 
//     public boolean isVanilla() {
//         return this.vanilla;
//     }
// 
//     public String getName() {
//         return name().toLowerCase(Locale.ROOT);
//     }
// 
//     public int getIndex() {
//         return ordinal();
//     }
// 
// 
// }


import com.legobmw99.allomancy.api.enums.Metal;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.Level;
package com.legobmw99.allomancy.api.data;


public interface IAllomancerData {

    /**
     * Called each worldTick, checking the burn times, abilities, and metal
     * amounts. Then syncs to the client to make sure everyone is on the same
     * page
     *
     * @param player the player being checked
     */
    void tickBurning(ServerPlayer player);

    /**
     * Get if the player has the supplied power
     *
     * @param metal the Metal to check
     * @return true if this capability has the power specified
     */
    boolean hasPower(Metal metal);

    /**
     * Get the number of powers the player has
     *
     * @return int between 0 and 16, inclusive
     */
    int getPowerCount();

    /**
     * Returns an array of the player's metal abilities
     *
     * @return array of Metal
     */
// Path: src/main/java/com/legobmw99/allomancy/api/enums/Metal.java
// public enum Metal {
//     IRON(true),
//     STEEL,
//     TIN,
//     PEWTER,
//     ZINC,
//     BRASS,
//     COPPER(true),
//     BRONZE,
//     ALUMINUM,
//     DURALUMIN,
//     CHROMIUM,
//     NICROSIL,
//     GOLD(true),
//     ELECTRUM,
//     CADMIUM,
//     BENDALLOY;
// 
// 
//     private final boolean vanilla;
// 
//     Metal() {
//         this(false);
//     }
// 
//     Metal(boolean isVanilla) {
//         this.vanilla = isVanilla;
//     }
// 
//     public static Metal getMetal(int index) {
//         for (Metal metal : values()) {
//             if (metal.getIndex() == index) {
//                 return metal;
//             }
//         }
//         throw new IllegalArgumentException("Allomancy: Bad Metal Index");
//     }
// 
//     public boolean isVanilla() {
//         return this.vanilla;
//     }
// 
//     public String getName() {
//         return name().toLowerCase(Locale.ROOT);
//     }
// 
//     public int getIndex() {
//         return ordinal();
//     }
// 
// 
// }


// Path: src/main/java/com/legobmw99/allomancy/api/data/IAllomancerData.java
import com.legobmw99.allomancy.api.enums.Metal;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.Level;

package com.legobmw99.allomancy.api.data;


public interface IAllomancerData {

    /**
     * Called each worldTick, checking the burn times, abilities, and metal
     * amounts. Then syncs to the client to make sure everyone is on the same
     * page
     *
     * @param player the player being checked
     */
    void tickBurning(ServerPlayer player);

    /**
     * Get if the player has the supplied power
     *
     * @param metal the Metal to check
     * @return true if this capability has the power specified
     */
    boolean hasPower(Metal metal);

    /**
     * Get the number of powers the player has
     *
     * @return int between 0 and 16, inclusive
     */
    int getPowerCount();

    /**
     * Returns an array of the player's metal abilities
     *
     * @return array of Metal
     */
    Metal[] getPowers();