package com.tiedup.remake.items.base;

/**
 * Interface for items that can have their render position adjusted.
 * Typically gags and blindfolds that render on the player's head.
 *
 * Players can adjust the Y position of these items to better fit their skin.
 * Adjustment values are stored in the ItemStack's NBT via AdjustmentHelper.
 */
public interface IAdjustable {
    /**
     * Whether this item supports position adjustment.
     * @return true if adjustable
     */
    boolean canBeAdjusted();

    /**
     * Default Y offset for this item type (in pixels, 1 pixel = 1/16 block).
     * Override for items that need a non-zero default position.
     * @return default adjustment value
     */
    default float getDefaultAdjustment() {
        return 0.0f;
    }

    /**
     * Minimum allowed adjustment value (pixels).
     * @return minimum value (typically -4.0)
     */
    default float getMinAdjustment() {
        return -4.0f;
    }

    /**
     * Maximum allowed adjustment value (pixels).
     * @return maximum value (typically +4.0)
     */
    default float getMaxAdjustment() {
        return 4.0f;
    }

    /**
     * Step size for GUI slider (smaller = more precise).
     * @return step size (typically 0.25)
     */
    default float getAdjustmentStep() {
        return 0.25f;
    }
}
