Step 1 添加并注册工具

第九部分为实验性内容,容易出现bug

现已知bug:无法使用本模组镐挖掘本模组方块

打开src/main/java/com.imxiaoanag.em文件夹,创建ToolFabric的class

public class ToolFabric implements ToolMaterial {

    @Override
    public int getDurability() {
        return 200;//耐久值200
    }

    @Override
    public float getMiningSpeed() {
        return 10.0f;//挖掘速度10
    }

    @Override
    public float getAttackDamage() {
        return 4.0f;//伤害值4
    }

    @Override
    public int getMiningLevel() {
        return 4;//挖掘级别4
    }

    @Override
    public int getEnchantability() {
        return 30;//附魔等级30
    }

    @Override
    public Ingredient getRepairIngredient() {
        return null;//修复配方,可选
    }

}

再于文件夹下创建Tools文件夹

创建AxeBase,HoeBase,PickaxeBase,ShovelBase,SwordBase的class,此处以AxeBase为例

public class AxeBase extends AxeItem {

    public AxeBase(ToolMaterial material) {
        super(material, -1, -2.2f, new Item.Settings().group(Main.FABRIC_EXAMPLE_GROUP));//伤害值相较ToolFabric中的4-1=3,攻击速度-2.2,设置在fabric_example_group中
    }
}

接下来,我们打开Main的class,在onInitialize的public中添加

Registry.register(Registry.ITEM, new Identifier(MODID, "fabric_pickaxe"), new PickaxeBase(new ToolFabric()));
Registry.register(Registry.ITEM, new Identifier(MODID, "fabric_axe"), new AxeBase(new ToolFabric()));
Registry.register(Registry.ITEM, new Identifier(MODID, "fabric_hoe"), new HoeBase(new ToolFabric()));
Registry.register(Registry.ITEM, new Identifier(MODID, "fabric_sword"), new SwordBase(new ToolFabric()));
Registry.register(Registry.ITEM, new Identifier(MODID, "fabric_shovel"), new ShovelBase(new ToolFabric()));

打开游戏进行测试

最终成功

Last updated