工具信息 1.20 Fabric 长线教程计划
本篇教程的视频
本篇教程的源代码
GitHub地址:TutorialMod-Tooltips-1.20.1
本篇教程目标
- 理解原版一些物品的提示信息添加方法
- 学会为模组的物品、方块等添加提示信息
查看源代码
工具信息呢,也可以称为提示信息
像我们之前写的那些工具,当鼠标悬停在那些物品上的时候,会有在主手时...
的一些提示信息,这也就是我们今天来学习的Tooltip
当然,工具信息
并不是工具类独有的,任何物品
都可以添加,方块
亦可
另外结合别的方法,你也可以实现像机械动力
那样的,按住某个键开始思索
这里我们先来看看原版的那些工具信息是怎么添加的,这里我们以山羊角
为例,找到GoatHornItem
1 |
|
找到一个appendTooltip
方法,这个方法就是用来添加提示信息
的
山羊角在游戏中是可以拿来吹的,不同的山羊角吹出的声音也是不一样的,而它能够吹出的声音是有工具信息来提示的
那么在这里,我们要看的其实就tooltip.add
这个方法
上面的这一串呢,其实是就是按照不同山羊角对应的不同声音来添加不同的提示信息
tooltip.add
方法接受的是一个MutableText
类型的参数
Text.translatable
是我们之前写物品栏的时候也接触过的一个方法,这个就是提供翻译键
的
add
方法里面的formatted
方法呢,就是用来设置提示信息的颜色的
那么,原版的工具类的话,它的提示信息添加方法或许有点麻烦,它是在ItemStack
这个类中添加的
添加工具信息
那么接下来我们就来为我们之前写的物品添加提示信息
我们来到PickaxeAxeItem
这个类,然后重写appendTooltip
方法
1 |
|
简单一点就像这样直接加就可以了,然后到语言文件里去翻译这个翻译键即可
不过,我们可以变得稍微复杂一点,比如实现很多模组中有的按住Shift
获取更多信息
那么问题来了,如何判断玩家是否按下了SHIFT
?
其实原版的Screen
类已经定义好了一个方法hasShiftDown
,它就是用来判断SHIFT
键是否被按下
1 |
|
为了与不按下SHIFT
的提示信息区分开来,我们在字符串的末尾添加了一个.shift
语言文件
1 | translationBuilder.add("tooltip.tutorial.pickaxe_axe.shift", "This is a item that can be used as a pickaxe and an axe"); |
同样的,简单一点就是像这样直接写翻译键对应的信息就好了
但是,我们也可以利用格式化代码
来添加一些特殊的形式,比如我们想让SHIFT
突出强调
格式化代码
又称为颜色代码
,如果写过数据包的同学,或许知道这个东西
这里我们先到Wiki
上来看看格式化代码,Wiki
我们要使用分节符§
来为某些字符来格式化文本
,颜色代码
和格式代码
也在Wiki
上给出了
不过,分节符如果不通过复制得到的话,是有点难打的,我们可以拿/u00A7
代替分节符,a和A都可以
在Wiki
界面往下翻,我们可以看到一个编辑器
,在这个编辑器里我们可以直接输入编辑我们想要编辑的文本
比如我们将SHIFT
输入,然后让它变成金色
,加粗
、斜体
、下划线
都给它加上
在输出
栏中,我们就得到了这么一段
1 | §6§n§l§oSHIFT§r§r§r§r |
然后在语言文件中替换一下就可以了
1 | translationBuilder.add("tooltip.tutorial.pickaxe_axe.shift", "This is a item that can be used as a pickaxe and an axe"); |
测试
那么跑个数据生成,随后我们进入游戏,当鼠标悬停
在这个物品上面的时候,我们看到SHIFT
是金色的,同时加粗、带下划线、斜体
接下去按住SHIFT
,我们就能看到这个物品的详细信息
了