package com.tiedup.remake.client.animation.render;

import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

/**
 * Magic numbers shared across render handlers: DOG pose rotation
 * smoothing, head clamp limits, vertical offsets.
 */
@OnlyIn(Dist.CLIENT)
public final class RenderConstants {

    private RenderConstants() {}

    // === DOG pose rotation smoothing speeds ===

    /** Speed for smoothing body rotation toward target while moving */
    public static final float DOG_ROT_SPEED_MOVING = 0.15f;

    /** Speed for smoothing body rotation toward target while stationary */
    public static final float DOG_ROT_SPEED_STATIONARY = 0.12f;

    /** Speed for smoothing target rotation while moving */
    public static final float DOG_TARGET_SPEED_MOVING = 0.2f;

    /** Speed for smoothing target rotation while stationary */
    public static final float DOG_TARGET_SPEED_STATIONARY = 0.3f;

    // === Head clamp limits ===

    /** Maximum head yaw relative to body while moving (degrees) */
    public static final float HEAD_MAX_YAW_MOVING = 60f;

    /** Maximum head yaw relative to body while stationary (degrees) */
    public static final float HEAD_MAX_YAW_STATIONARY = 90f;

    /** Threshold ratio for detecting head-at-limit (triggers body snap) */
    public static final float HEAD_AT_LIMIT_RATIO = 0.85f;

    /** Ratio of max yaw to snap body to when releasing head */
    public static final float HEAD_SNAP_RELEASE_RATIO = 0.7f;

    // === Vertical offsets (model units, 16 = 1 block) ===

    /** Y offset for DOG and PET BED poses (6/16 = 0.375 blocks) */
    public static final double DOG_AND_PETBED_Y_OFFSET = -6.0 / 16.0;

    /** Y offset for Damsel sitting pose (model units) */
    public static final float DAMSEL_SIT_OFFSET = -10.0f;

    /** Y offset for Damsel kneeling pose (model units) */
    public static final float DAMSEL_KNEEL_OFFSET = -5.0f;

    /** Y offset for Damsel dog pose (model units) */
    public static final float DAMSEL_DOG_OFFSET = -7.0f;
}
