提示信息 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.的提示信息
物品可以,方块也是可以的,其要重写的方法是一样的,这里就不再赘述了











