星屿浅奈 ✧ Saneko

Back

minecraft模组:02创建工具Blur image

前言#

通过fabric编写模组,创建一套自定义工具铜镐铜锄铜锹铜斧铜剑

工具材质#

在 Minecraft 开发中,ToolMaterials 类是一个非常重要的类,它主要用于定义工具的材质属性。

首先,创建一个铜质的工具材料,统一管理耐久度,挖掘速度,攻击力,附魔能力等。

注册物品#

通过register方法进行注册。分别将铜镐、铜锄、铜锹、铜斧和铜剑的攻击伤害攻击速度修改为[3.5, 1, 4, 9, 5.5][1.2, 2, 1, 0.8, 1.6]

添加翻译#

en_us#

打开main\resources\assets\mymod\lang\en_us.json文件,不存在则新建,添加英语翻译

{
  "item.mymod.copper_pickaxe": "Copper Pickaxe",
  "item.mymod.copper_axe": "Copper Axe",
  "item.mymod.copper_hoe": "Copper Hoe",
  "item.mymod.copper_shovel": "Copper Shovel",
  "item.mymod.copper_sword": "Copper Sword",
}
json

zh_ch#

打开main\resources\assets\mymod\lang\zh_ch.json文件,不存在则新建,添加中文翻译

{
  "item.mymod.copper_pickaxe": "铜镐",
  "item.mymod.copper_axe": "铜斧",
  "item.mymod.copper_hoe": "铜锄",
  "item.mymod.copper_shovel": "铜锹",
  "item.mymod.copper_sword": "铜剑",
}
json

添加纹理模型#

main\resources\assets\mymod\models\item文件夹下,新建copper_axe.json,copper_hoe.json,copper_pickaxe.json, copper_shovel.json,copper_sword.json等文件,写入对应模型文件。

// copper_axe.json
{
  "parent": "item/handheld",
  "textures": {
    "layer0": "mymod:item/copper_axe",
  },
}
json
// copper_hoe.json
{
  "parent": "item/handheld",
  "textures": {
    "layer0": "mymod:item/copper_hoe",
  },
}
json
// copper_pickaxe.json
{
  "parent": "item/handheld",
  "textures": {
    "layer0": "mymod:item/copper_pickaxe",
  },
}
json
// copper_shovel.json
{
  "parent": "item/handheld",
  "textures": {
    "layer0": "mymod:item/copper_shovel",
  },
}
json
// copper_sword.json
{
  "parent": "item/handheld",
  "textures": {
    "layer0": "mymod:item/copper_sword",
  },
}
json

需要注意的是,此时parent填入的是item/handheld模型,表示物品将使用默认的手持物品显示方式。

main\resources\assets\mymod\textures\item文件夹下,放入对应纹理文件。

工具纹理

合成#

以上的代码已经可以在游戏里正常工作了,但是想要在生存模式中使用,就需要设计对应的合成方式。

main\resources\data\mymod\recipe文件夹下,分别新建对应工具的json文件,写入合成方式。

  • 铜镐

铜镐

  • 铜铲

铜铲

  • 铜锄

铜锄1

铜锄2

  • 铜剑

铜剑

  • 铜斧

铜斧1

铜斧2

附魔#

当这些自定义工具,放置到附魔台上时,发现无法进行附魔。查阅了一些资料发现,需要对这些工具打上附魔的tag标签。 同样在main\resources\data\minecraft\tags\item\enchantable文件夹下(文件夹不存在则新建),分别创建mining.jsonsword.json文件。

// mining.json
{
  "replace": false,
  "values": [
    "mymod:copper_axe",
    "mymod:copper_hoe",
    "mymod:copper_pickaxe",
    "mymod:copper_shovel",
  ],
}
json
// sword.json
{
  "replace": false,
  "values": [
    "mymod:copper_sword",
  ],
}
json

此时,放到附魔台上就可以正常附魔了。

实现效果#

minecraft模组:02创建工具
https://saneko.me/blog/cccf44be6a4a
Author Saneko
Published at March 7, 2025
Buy me a cup of coffee ☕.
Comment seems to stuck. Try to refresh?✨