Table of Contents
添加盾牌
恭喜!在上一个教程中我们学会了如何创建自定义工具!想象一下,如果想要防御一把十分强大自定义的剑,常规的盾牌是不大起作用的。因此,我们将在这里尝试创建自定义的盾牌。 幸运的,CrimsonDawn45 已经为此制作了一个库来辅助创建自定义盾牌,如果没有他创建的库,我们甚至可能需要在这个教程中待上一个小时,感谢 CrimsonDawn45!
为项目添加依赖
将以下的代码添加到对应的文件中:
gradle.properties
fabric_shield_lib_version=1.3.7
build.gradle (在 dependencies {} 下)
modImplementation "com.github.hackcoder1000:Fabric-Shield-Lib:v${project.fabric_shield_lib_version}-${project.minecraft_version}"
在编写本文时,最新 project.fabric_shield_lib_version 应为1.3.7,最新 project.minecraft_version 应为1.17.1。每当出现新的版本时,此页面都会更新。
build.gradle (在 repositories {} 下)
allprojects { repositories { maven { url 'https://jitpack.io' } } }
添加一块自定义的盾牌
现在我们正式开始!
请确保正确遵循了上一步并且刷新了项目依赖以添加库到项目中
第一步,创建一个物品实例
public static final Item NETHERITE_SHIELD = new FabricShield(new FabricItemSettings().group(ItemGroup.COMBAT), 10, 2500, 13, Items.NETHERITE_INGOT); // FabricShield(settings, cooldownTicks, durability, enchantability, repairItem)
然后,注册这个物品
Registry.register(Registries.ITEM, new Identifier("moreshields", "netherite_shield"), NETHERITE_SHIELD)
我们已经创建了自定义盾牌的物品
现在,我们需要为自定义盾牌添加纹理和模型
对于纹理,可以使用任意的资源,如果不知道需要怎么样绘制,可以参考游戏原版的盾牌图案,然后在原版盾牌图案的基础上进行修改。绘制完成后放置到 resources/textures/item/<filename>.png
对于模型, 需要编写一些 .json 文件
指定物品模型
{ "parent":"fabricshieldlib:item/template_shield", "textures":{ "shield":"moreshields:item/netherite_shield" }, "overrides": [ { "predicate": { "blocking": 1 }, "model": "moreshields:item/netherite_shield_blocking" } ] }
把它放到 resources/models/item/netherite_shield.json
然后是方块模型
{ "parent":"fabricshieldlib:item/template_shield_blocking", "textures":{ "shield":"moreshields:item/netherite_shield" } }
放到 resources/models/item/netherite_shield_blocking.json
最后,不要忘记添加本地化语言文件 en_us.json
{ "item.moreshields.netherite_shield": "Netherite Shield" }
到这里,一块自定义盾牌已经完成啦!