提示信息 1.21 Fabric
本篇教程的视频
本篇教程的源代码
GitHub地址:TutorialMod-Tooltip-1.21
介绍
Tooltip
是一种附加在物品或者方块上的提示信息,比如说在游戏中各个工具的攻击速度、攻击伤害等等,再如音乐唱片的信息、山羊角的信息等等,这些都属于工具信息
具体可见Wiki
编写Tooltip
查看源代码
在游戏中,我们其实不太好找关于Tooltip
的源代码
原版工具(斧、镐等等)中的这些信息是在ItemStack
类中的appendAttributeModifierTooltip
方法中添加的,其逻辑还得理解理解才能搞明白
这里的话我们来找山羊角GoatHornItem
的源代码,这个物品的信息是在GoatHornItem
类中的appendTooltip
方法中添加的
1 |
|
重写appendTooltip
方法,这个方法是Item
类中的方法
杂七杂八的不用看,其核心就在这里,tooltip.add(mutableText.formatted(Formatting.GRAY));
,这里就是添加信息的地方
mutableText
是一个MutableText
对象,实质就是一串文本
Text.translatable
方法创建一个可以被语言文件翻译的文本,后面的那个参数就是语言文件中的key(山羊角虽然很多个,但实例化的类是同一个,后面的代码是根据不同的注册值返回不同的提示信息)
另外我们可以通过formatted
方法来设置文本的格式,比如说颜色、粗体等等,后面也可以直接在语言文件中使用颜色代码来写
编写Tooltip
这里我们以Prospector
为例,我们在Prospector
类中重写appendTooltip
方法
1 |
|
这里我们添加了两个提示信息,一个是item.tutorialmod.prospector.shift_tooltip
,一个是item.tutorialmod.prospector.tooltip
如果说你的物品和山羊角一样,可以仿照山羊角的写法,这里我们就写最简单的
上面一个是按下Shift
时的提示信息,下面一个是未按下Shift
时的提示信息
这个写法也是在很多模组里面常见的
翻译Tooltip
这里我们还是用DataGen
来生成语言文件
1 | translationBuilder.add("item.tutorialmod.prospector.shift_tooltip", "A tool used to find ores."); |
一个键对应一个值,这里的键就是上面的item.tutorialmod.prospector.shift_tooltip
和item.tutorialmod.prospector.tooltip
值是实际你要展示的文本
这里的\u00A76
是格式化代码,又称颜色代码。其中\u00A7
是转义字符,即§
(分节符),后面的6
是颜色代码,这里是金黄色,具体颜色代码
而后,\u00A7r
是重置颜色代码,即将颜色重置为白色,因为我们这里只设置了SHIFT
的颜色
格式化数据及详细的颜色代码见Wiki
这里生成语言文件的时候,\u00A7
会被转义为§
,所以不用担心,也就是说最后长这样
1 | { |
测试
最后我们就可以在游戏中看到我们的提示信息了,不按Shift
键就可以看到Hold SHIFT for more information.
的提示信息(其中SHIFT
是金黄色的),按下Shift
键就可以看到A tool used to find ores.
的提示信息
物品可以,方块也是可以的,其要重写的方法是一样的,这里就不再赘述了