minecraft-src/net/minecraft/world/item/DiggerItem.java
2025-07-04 01:41:11 +03:00

38 lines
1.5 KiB
Java

package net.minecraft.world.item;
import net.minecraft.core.component.DataComponents;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.EquipmentSlotGroup;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.item.component.ItemAttributeModifiers;
import net.minecraft.world.level.block.Block;
public class DiggerItem extends TieredItem {
protected DiggerItem(Tier tier, TagKey<Block> blocks, Item.Properties properties) {
super(tier, properties.component(DataComponents.TOOL, tier.createToolProperties(blocks)));
}
public static ItemAttributeModifiers createAttributes(Tier tier, float attackDamage, float attackSpeed) {
return ItemAttributeModifiers.builder()
.add(
Attributes.ATTACK_DAMAGE,
new AttributeModifier(BASE_ATTACK_DAMAGE_ID, attackDamage + tier.getAttackDamageBonus(), AttributeModifier.Operation.ADD_VALUE),
EquipmentSlotGroup.MAINHAND
)
.add(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_ID, attackSpeed, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND)
.build();
}
@Override
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
return true;
}
@Override
public void postHurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
stack.hurtAndBreak(2, attacker, EquipmentSlot.MAINHAND);
}
}