package carpetextra.mixins;

import carpetextra.CarpetExtraSettings;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.ChickenEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;

@Mixin(ChickenEntity.class)
public abstract class ChickenEntityMixin extends AnimalEntity
{
    protected ChickenEntityMixin(EntityType<? extends AnimalEntity> entityType_1, World world_1)
    {
        super(entityType_1, world_1);
    }
    
    @Override
    public boolean interactMob(PlayerEntity playerEntity_1, Hand hand_1)
    {
        ItemStack stack = playerEntity_1.getStackInHand(hand_1);
        if (CarpetExtraSettings.chickenShearing && stack.getItem() == Items.SHEARS && !this.isBaby())
        {
            if (!this.world.isClient)
            {
                this.damage(DamageSource.GENERIC, 1);
                this.dropItem(Items.FEATHER, 1);
                stack.damage(1, (LivingEntity)playerEntity_1, ((playerEntity_1x) -> {
                    playerEntity_1x.sendToolBreakStatus(hand_1);
                }));
            }
        }
        return super.interactMob(playerEntity_1, hand_1);
    }
}