package com.tiedup.remake.entities.kidnapper.components;

import com.tiedup.remake.entities.ai.kidnapper.KidnapperState;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;

/**
 * Host interface for KidnapperAlertManager callbacks.
 * Provides access to entity properties needed for the alert system.
 */
public interface IAlertHost {
    /**
     * Get the entity's level/world.
     */
    Level level();

    /**
     * Get the entity's bounding box for area searches.
     */
    AABB getBoundingBox();

    /**
     * Get the current AI state.
     */
    KidnapperState getCurrentState();

    /**
     * Set the current AI state.
     */
    void setCurrentState(KidnapperState state);

    /**
     * Check if this kidnapper has captives.
     */
    boolean hasCaptives();

    /**
     * Check if this kidnapper is tied up.
     */
    boolean isTiedUp();

    /**
     * Get the kidnapper's name for logging.
     */
    String getNpcName();
}
