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

import com.tiedup.remake.entities.KidnapperTheme;
import com.tiedup.remake.entities.ai.kidnapper.KidnapperState;
import com.tiedup.remake.personality.PersonalityType;
import com.tiedup.remake.state.IRestrainable;
import net.minecraft.world.entity.LivingEntity;
import org.jetbrains.annotations.Nullable;

/**
 * Host interface for KidnapperDialogue callbacks.
 * Provides access to entity state needed for dialogue speaker implementation.
 */
public interface IDialogueHost {
    /**
     * Get the NPC's display name.
     */
    String getNpcName();

    /**
     * Get the current theme.
     */
    @Nullable
    KidnapperTheme getTheme();

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

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

    /**
     * Get the current captive.
     */
    @Nullable
    IRestrainable getCaptive();

    /**
     * Get the entity as LivingEntity.
     */
    LivingEntity asEntity();
}
