package com.tiedup.remake.items.base;

/**
 * Enum defining the different pose types for restrained entities.
 * Each pose type has a corresponding animation file for players
 * and pose method in BondagePoseHelper for NPCs.
 *
 */
public enum PoseType {
    /** Standard tied pose - arms behind back, legs frozen */
    STANDARD("tied_up_basic", "basic"),

    /** Straitjacket pose - arms crossed in front */
    STRAITJACKET("straitjacket", "straitjacket"),

    /** Wrap pose - arms at sides, body wrapped */
    WRAP("wrap", "wrap"),

    /** Latex sack pose - full enclosure, legs together */
    LATEX_SACK("latex_sack", "latex_sack"),

    /** Dog pose - on all fours (crawling) */
    DOG("tied_up_dog", "dog"),

    /** Human chair pose - on all fours with straight limbs (table/furniture) */
    HUMAN_CHAIR("human_chair", "human_chair");

    private final String animationId;
    private final String bindTypeName;

    PoseType(String animationId, String bindTypeName) {
        this.animationId = animationId;
        this.bindTypeName = bindTypeName;
    }

    /**
     * Get the animation file ID for this pose type.
     * Used by PlayerAnimationManager to load the correct animation.
     *
     * @return Animation resource name (without path or extension)
     */
    public String getAnimationId() {
        return animationId;
    }

    /**
     * Get the bind type name used in SIT/KNEEL animation IDs.
     *
     * @return Bind type name (e.g., "basic", "straitjacket", "wrap")
     */
    public String getBindTypeName() {
        return bindTypeName;
    }
}
