的NeoForge1.20.4Mod开发的视频,这篇教程是我边学边总结的,与其说是教程更像我的学习笔记,如有不清楚的地方,大家可以在评论区提问。在我力所能及的范围内,我都会解答的。
public class RubyPickaxe extends PickaxeItem {
public RubyPickaxe() {
super(ModItemTiers.RUBY,2,-2,new Properties());
}
}
这个类与上个教程的RubySword差不多,其余的工具如斧子,锄头和铲子只有继承的类是不同的
public PickaxeItem(Tier tier, int attackDamageModifier, float attackSpeedModifier, Item.Properties properties) {
super((float)attackDamageModifier, attackSpeedModifier, tier, BlockTags.MINEABLE_WITH_PICKAXE, properties);
}
继承的PickaxeItem类中的BlockTags.MINEABLE_WITH_PICKAXE规定了哪些方块可以用镐子挖掘。这是通过标签来实现的,之后的教程会介绍
类介绍
DiggerItem 类
这个类实现了 Minecraft 中用于表示具有可挖掘功能的工具。其主要功能是根据工具的材质、速度、攻击力以及可挖掘的方块类型来定义一个可以用于挖掘的工具。通过该类,你可以创建自定义的工具,如镐子、铲子、斧子等,并为它们定义自定义的行为和属性。
构造方法接收以下参数:
-
attackDamageModifier:攻击伤害的增益值。 -
attackSpeedModifier:攻击速度的增益值。 -
tier:工具材质(继承自Tier)。 -
blocks:工具可以挖掘的方块标签(TagKey<Block>)。 -
properties:工具的额外属性(Item.Properties)。
在构造方法中:
-
this.blocks存储了工具能够挖掘的方块类型。 -
this.speed使用材质提供的挖掘速度(通过tier.getSpeed())。 -
this.attackDamageBaseline计算攻击伤害的基础值。 -
构建了一个
defaultModifiers,用于存储该工具的默认属性修改器,包含攻击力和攻击速度的修改。
public float getDestroySpeed(ItemStack stack, BlockState state):返回工具挖掘某个方块时的速度,基于该方块是否在工具的可挖掘范围内
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker):工具攻击敌人时,造成伤害并减少耐久
public boolean mineBlock(ItemStack stack, Level level, BlockState state, BlockPos pos, LivingEntity entityLiving):工具破坏方块时,减少耐久
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(EquipmentSlot equipmentSlot):返回工具的默认属性修改器(如攻击伤害、攻击速度)以便在装备槽中应用
public float getAttackDamage():返回工具的基础攻击伤害
@Deprecated public boolean isCorrectToolForDrops(BlockState block):检查该工具是否能正确挖掘某个方块(已弃用)
public boolean isCorrectToolForDrops(ItemStack stack, BlockState state)







暂无评论内容