User Tools

Site Tools


zh_cn:tutorial:tooltip

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:tooltip [2022/05/27 15:38] solidblockzh_cn:tutorial:tooltip [2025/04/01 08:15] (current) solidblock
Line 1: Line 1:
-====== 添加一个物品提示 ====== +====== 添加物品提示 ====== 
-在您的[[zh_cn:tutorial:items|物品]]类中,像这样重写 ''appendTooltip''(有关如何翻译工具提示,请参见[[zh_cn:tutorial:lang]])。+===== 物品的物品提示 ===== 
 +在您的[[zh_cn:tutorial:items|物品]]类中,像这样重写 ''appendTooltip''(有关如何翻译提示,请参见[[zh_cn:tutorial:lang]])。
  
 对于 1.18.2 及之前的版本: 对于 1.18.2 及之前的版本:
Line 8: Line 9:
  
     // 默认为白色文本     // 默认为白色文本
-    tooltip.add( new class_2588("item.tutorial.fabric_item.tooltip") );+    tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip"));
  
     // 格式化为红色文本     // 格式化为红色文本
-    tooltip.add( new class_2588("item.tutorial.fabric_item.tooltip").method_27692(class_124.field_1061) );+    tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip").method_27692(class_124.field_1061) );
 } }
 </yarncode> </yarncode>
Line 19: Line 20:
 @Override @Override
 public void method_7851(class_1799 itemStack, class_1937 world, List<class_2561> tooltip, class_1836 tooltipContext) { public void method_7851(class_1799 itemStack, class_1937 world, List<class_2561> tooltip, class_1836 tooltipContext) {
 +    tooltip.add(Text.translatable("item.tutorial.custom_item.tooltip"));
 +}
 +</yarncode>
  
-    // 默认为白色文本 +对于 1.20.5 之后的版 
-    tooltip.add(Text.translatable("item.tutorial.fabric_item.tooltip"); +<yarncode java> 
- +@Override 
-    // 格式化为红色文本 +public void method_7851(class_1799 itemStack, TooltipContext context, List<class_2561> tooltip, TooltipType type{ 
-    tooltip.add(Text.translatable("item.tutorial.fabric_item.tooltip").method_27692(class_124.field_1061) );+    tooltip.add(Text.translatable("item.tutorial.custom_item.tooltip"));
 } }
 </yarncode> </yarncode>
-你也可以在[[zh_cn:tutorial:blocks|方块]]类中通过重写类似方法来添加物品提示+ 
 +> :!: 该方法自从 1.21.5 开始被弃用。要在 1.21.5 添加物品提示,请使用 Fabric API。 
 +===== 方块的物品提示 ===== 
 +你也可以在[[zh_cn:tutorial:blocks|方块]]类中通过重写类似方法来添加物品提示:
 <yarncode java> <yarncode java>
 @Override @Override
 public void method_9568(class_1799 itemStack, class_1922 world, List<class_2561> tooltip, class_1836 tooltipContext) { public void method_9568(class_1799 itemStack, class_1922 world, List<class_2561> tooltip, class_1836 tooltipContext) {
     // 对于 1.18.2 及之前的版本     // 对于 1.18.2 及之前的版本
-    tooltip.add(new class_2588("block.tutorial.fabric_block.tooltip") );+    tooltip.add(new TranslatableText("block.tutorial.custom_block.tooltip"));
          
     // 对于 1.19 之后的版本     // 对于 1.19 之后的版本
-    tooltip.add(Text.translatable("block.tutorial.fabric_block.tooltip") );+    tooltip.add(Text.translatable("block.tutorial.custom_block.tooltip"));
 } }
 </yarncode> </yarncode>
 +
 +对于 1.20.5 之后、1.21.5 之前的版本:
 +<yarncode java>
 +@Override
 +public void method_9568(class_1799 itemStack, Item.TooltipContext context, List<class_2561> tooltip, TooltipType options) {
 +    tooltip.add(Text.translatable("block.tutorial.custom_block.tooltip"));
 +}
 +</yarncode>
 +
 +===== 在 1.21.5 中添加物品提示 =====
 +
 +自 1.21.5 开始,物品提示的实现方式被重写。大多数物品提示改为使用物品组件实现,其是否显示会受到 ''tooltip_display'' 物品组件的影响。不过,还是可以借助 Fabric API 添加自定义的物品提示。可以在代码的模组初始化器部分加入以下代码:
 +<code java>
 +    ItemTooltipCallback.EVENT.register((itemStack, tooltipContext, tooltipType, list) -> {
 +      if (!itemStack.isOf(TutorialItems.CUSTOM_ITEM)) {
 +        return;
 +      }
 +      list.add(Text.translatable("item.tutorial.custom_item.tooltip"));
 +    });
 +</code>
 +
 +这个例子将为我们在 [[items]] 教程中创建的物品添加自定义的物品提示。
zh_cn/tutorial/tooltip.1653665889.txt.gz · Last modified: 2022/05/27 15:38 by solidblock