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 [2021/07/27 07:45] solidblockzh_cn:tutorial:tooltip [2025/04/01 08:15] (current) solidblock
Line 1: Line 1:
-====== 添加一个物品提示 ====== +====== 添加物品提示 ====== 
-在您的[[zh_cn:tutorial:items|物品]]类中,像这样重写 ''appendTooltip''(有关如何翻译工具提示,请参见[[zh_cn:tutorial:lang]]): +===== 物品的物品提示 ===== 
-<code java>+在您的[[zh_cn:tutorial:items|物品]]类中,像这样重写 ''appendTooltip''(有关如何翻译提示,请参见[[zh_cn:tutorial:lang]])。 
 + 
 +对于 1.18.2 及之前的版本: 
 +<yarncode java>
 @Override @Override
-public void appendTooltip(ItemStack itemStack, World world, List<Text> tooltip, TooltipContext tooltipContext) {+public void method_7851(class_1799 itemStack, class_1937 world, List<class_2561> tooltip, class_1836 tooltipContext) {
  
     // 默认为白色文本     // 默认为白色文本
-    tooltip.add( new TranslatableText("item.tutorial.fabric_item.tooltip") );+    tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip")); 
 + 
 +    // 格式化为红色文本 
 +    tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip").method_27692(class_124.field_1061) ); 
 +
 +</yarncode> 
 + 
 +对于 1.19 之后的版本: 
 +<yarncode java> 
 +@Override 
 +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 之后的版本: 
 +<yarncode java> 
 +@Override 
 +public void method_7851(class_1799 itemStack, TooltipContext context, List<class_2561> tooltip, TooltipType type) { 
 +    tooltip.add(Text.translatable("item.tutorial.custom_item.tooltip")); 
 +
 +</yarncode> 
 + 
 +> :!: 该方法自从 1.21.5 开始被弃用。要在 1.21.5 添加物品提示,请使用 Fabric API。 
 +===== 方块的物品提示 ===== 
 +你也可以在[[zh_cn:tutorial:blocks|方块]]类中通过重写类似方法来添加物品提示: 
 +<yarncode java> 
 +@Override 
 +public void method_9568(class_1799 itemStack, class_1922 world, List<class_2561> tooltip, class_1836 tooltipContext) { 
 +    // 对于 1.18.2 及之前的版本 
 +    tooltip.add(new TranslatableText("block.tutorial.custom_block.tooltip"));
          
-    // 默认为红色文本 +    // 对于 1.19 之后的版本 
-    tooltip.add( new TranslatableText("item.tutorial.fabric_item.tooltip").formatted(Formatting.RED) );+    tooltip.add(Text.translatable("block.tutorial.custom_block.tooltip"));
 } }
-</code+</yarncode
-你也可以在[[zh_cn:tutorial:blocks|方块]]类中通过重写类似方法来添加物品提示类: + 
-<code java>+对于 1.20.5 之后、1.21.5 之前的版本: 
 +<yarncode java>
 @Override @Override
-public void appendTooltip(ItemStack itemStack, BlockView world, List<Text> tooltip, TooltipContext tooltipContext) { +public void method_9568(class_1799 itemStack, Item.TooltipContext context, List<class_2561> tooltip, TooltipType options) { 
-    tooltip.add( new TranslatableText("block.tutorial.fabric_block.tooltip") );+    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> </code>
 +
 +这个例子将为我们在 [[items]] 教程中创建的物品添加自定义的物品提示。
zh_cn/tutorial/tooltip.1627371952.txt.gz · Last modified: 2021/07/27 07:45 by solidblock