package top.r3944realms.lib39.client.model;

import net.minecraft.client.model.geom.PartPose;
import net.minecraft.resources.Identifier;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;

/**
 * The interface Doll pose.
 */
public interface IDollPose {
    /**
     * Gets id.
     *
     * @return the id
     */
    @NotNull Identifier getId();

    /**
     * Gets total offset.
     *
     * @return the total offset
     */
    @NotNull default Vec3 getTotalOffset() {
        return Vec3.ZERO;
    }

    /**
     * Gets head pose.
     *
     * @return the head pose
     */
    @NotNull PartPose getHeadPose();

    /**
     * Gets body pose.
     *
     * @return the body pose
     */
    @NotNull PartPose getBodyPose();

    /**
     * Gets right arm pose.
     *
     * @return the right arm pose
     */
    @NotNull PartPose getRightArmPose();

    /**
     * Gets left arm pose.
     *
     * @return the left arm pose
     */
    @NotNull PartPose getLeftArmPose();

    /**
     * Gets right leg pose.
     *
     * @return the right leg pose
     */
    @NotNull PartPose getRightLegPose();

    /**
     * Gets left leg pose.
     *
     * @return the left leg pose
     */
    @NotNull PartPose getLeftLegPose();
}
