38 lines
1.5 KiB
Java
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);
|
|
}
|
|
}
|