package com.tiedup.remake.entities.skins;

import com.tiedup.remake.entities.KidnapperVariant;
import net.minecraft.resources.ResourceLocation;

/**
 * Registry and manager for elite kidnapper skin variants.
 *
 * Elite kidnappers are rarer, faster, and tie up targets faster.
 * Each elite has a unique name and dedicated skin texture.
 */
public class EliteKidnapperSkinManager {

    public static final SkinManagerCore<KidnapperVariant> CORE =
        new SkinManagerCore<>(
            "EliteKidnapperSkinManager",
            "kidnapper_elite",
            SkinDefinition::toKidnapperVariant,
            EliteKidnapperSkinManager::loadHardcodedDefaults
        );

    /**
     * Initialize and register all elite kidnapper variants.
     */
    public static void registerDefaults() {
        CORE.registerDefaults();
    }

    /**
     * Load hardcoded default elite skin variants.
     */
    private static void loadHardcodedDefaults() {
        // Elite skins with custom texture path (elite subfolder)
        CORE.registerVariant(
            new KidnapperVariant(
                "suki",
                ResourceLocation.fromNamespaceAndPath(
                    "tiedup",
                    "textures/entity/kidnapper/elite/suki.png"
                ),
                false,
                "Suki",
                Gender.FEMALE
            )
        );
        CORE.registerVariant(
            new KidnapperVariant(
                "carol",
                ResourceLocation.fromNamespaceAndPath(
                    "tiedup",
                    "textures/entity/kidnapper/elite/carol.png"
                ),
                false,
                "Carol",
                Gender.FEMALE
            )
        );
        CORE.registerVariant(
            new KidnapperVariant(
                "athena",
                ResourceLocation.fromNamespaceAndPath(
                    "tiedup",
                    "textures/entity/kidnapper/elite/athena.png"
                ),
                false,
                "Athena",
                Gender.FEMALE
            )
        );
        CORE.registerVariant(
            new KidnapperVariant(
                "evelyn",
                ResourceLocation.fromNamespaceAndPath(
                    "tiedup",
                    "textures/entity/kidnapper/elite/evelyn.png"
                ),
                false,
                "Evelyn",
                Gender.FEMALE
            )
        );
    }
}
