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

import com.tiedup.remake.entities.EntityKidnapper;
import com.tiedup.remake.entities.ai.kidnapper.KidnapperState;
import com.tiedup.remake.entities.kidnapper.components.ICellHost;
import java.util.UUID;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.Nullable;

/**
 * Host implementation for KidnapperCellManager callbacks.
 * Provides access to entity properties needed for cell management.
 */
public class CellHost implements ICellHost {

    private final EntityKidnapper entity;

    public CellHost(EntityKidnapper entity) {
        this.entity = entity;
    }

    @Override
    public Level level() {
        return entity.level();
    }

    @Override
    public BlockPos blockPosition() {
        return entity.blockPosition();
    }

    @Override
    @Nullable
    public UUID getAssociatedStructure() {
        return entity.getAssociatedStructure();
    }

    @Override
    public PathNavigation getNavigation() {
        return entity.getNavigation();
    }

    @Override
    public void setCurrentState(KidnapperState state) {
        entity.setCurrentState(state);
    }

    @Override
    public void talkToPlayersInRadius(
        com.tiedup.remake.dialogue.EntityDialogueManager.DialogueCategory category,
        int radius
    ) {
        entity.talkToPlayersInRadius(category, radius);
    }

    @Override
    public String getNpcName() {
        return entity.getNpcName();
    }
}
