User Tools

Site Tools


zh_cn:tutorial:tags

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:tags [2024/06/02 16:39] – [创建新的常用标签] sjk1949zh_cn:tutorial:tags [2024/06/30 10:07] (current) solidblock
Line 3: Line 3:
  
 ===== 标签示例 ===== ===== 标签示例 =====
-文件位置:''src/main/resources/data/tutorial/tags/blocks/example_ores.json''+ 
 +==== 在 JSON 文件中定义 ==== 
 + 
 +文件位置: 
 +  * ''src/main/resources/data/tutorial/tags/**blocks**/example_ores.json''(1.21 之前) 
 +  * ''src/main/resources/data/tutorial/tags/**block**/example_ores.json''(自从 1.21)
 <code javascript> <code javascript>
 { {
Line 12: Line 17:
 } }
 </code> </code>
-''"replace"'' 标签决定了模组是否要从标签中移除该文件中未提及的其他物品。不建议设为true,且破坏和其他模组的兼容性。文件路径的 ''blocks'' 也可以是 ''items'' 或者 ''fluids'',用于表示不同的类型。多个词语用下划线隔开,且标签名称使用复数形式(不可数名词除外)。 
  
-如需注册标签并在代码中使用,你需要这样使用: +''"replace"'' 标签决定了模组是否要从标签中移除该文件中未提及的其他物品。不建议设为 true,且破坏和其他模组的兼容性。文件路径的 ''blocks'' 也可以是 ''items'' 或者 ''fluids'',用于表示不同的类型。多个词语用下划线隔开,且标签名称使用复数形式(不可数名词除外)。 
-=== 1.19.3 及以上 ===+ 
 +==== 在代码中使用标签 ==== 
 + 
 +在一些情况下,你可能想要在代码中使用带有标签的注册物品。比如,像 ''Block#isIn'' 一类的方法需要这些标签参数。除此之外,例如 ''FlammableBlockRegistry'', ''FuelRegistry'' 以及 ''CompostingChanceRegistry'' 这样的 Fabric 注册表也接受方块标签或者物品标签。 
 + 
 +原版的标签物品可以在 ''<yarn class_3481>'' 和 ''<yarn class_3489>'' 类中找到。如需注册标签并在代码中使用,你需要这样使用: 
 + 
 +=== 1.21 以上 === 
 +<yarncode java> 
 +public class ModBlockTags { 
 +  public static final TagKey<class_2248> EXAMPLE_ORES = class_6862.method_40092(class_7924.field_41254, class_2960.of("tutorial", "example_ores")); 
 +
 +</yarncode> 
 + 
 +=== 1.19.3 至 1.20.6 === 
 <yarncode java> <yarncode java>
 public class ModBlockTags { public class ModBlockTags {
Line 31: Line 50:
  
 === 1.18.1 及以下(需要 Fabric API) === === 1.18.1 及以下(需要 Fabric API) ===
 +
 <yarncode java> <yarncode java>
 public class ModBlockTags { public class ModBlockTags {
Line 38: Line 58:
  
 === 1.17 及以下,不含 1.17.1(需要 Fabric API) === === 1.17 及以下,不含 1.17.1(需要 Fabric API) ===
 +
 <yarncode java> <yarncode java>
 public class ModBlockTags { public class ModBlockTags {
Line 44: Line 65:
 </yarncode> </yarncode>
  
-注意 ''TagRegistry'' 自从 Fabric API 0.46.0 已经弃用,此时已有 ''TagFactory'',但不支持 1.17。+注意由于 ''TagFactory'' 的出现,''TagRegistry'' 自从 Fabric API 0.46.0 已经弃用''TagRegistry'' 可以在我的世界1.17及低于1.17的版本使用,因为这些版本的 Fabric API 没有收到 ''TagFactory'' 的更新
  
 ===== 常用标签和模组标签 ===== ===== 常用标签和模组标签 =====
Line 55: Line 76:
 ==== 创建新的常用标签 ==== ==== 创建新的常用标签 ====
  
-常用标签即指 ''c'' 命名空间中的标签,这些标签可能会被多个模组使用,因此常用标签的命名方法应该在模组中保持一致。创建文件时,使用文件路径 ''src/main/resources/data/c/tags/'' 中的 ''blocks''、''items'' 或者 ''fluids''。常用标签的名称使用复数形式(不可数名词除外),单词之间用下划线隔开。下面标签是这个约定的范例:+常用标签即指 ''c'' 命名空间中的标签,这些标签可能会被多个模组使用,因此常用标签的命名方法应该在模组中保持一致。常用标签的名称使用复数形式(不可数名词除外),单词之间用下划线隔开。下面标签是这个约定的范例:
  
   * ''c:chests'' 方块标签   * ''c:chests'' 方块标签
Line 63: Line 84:
 标签名应使用平面结构而不是层次结构。比如,''c:iron_ores'' 比 ''c:ores/iron'' 更可取。 标签名应使用平面结构而不是层次结构。比如,''c:iron_ores'' 比 ''c:ores/iron'' 更可取。
 ==== 已存在的常用标签 ==== ==== 已存在的常用标签 ====
 +
 +Fabric API在其 ''Fabric-conconventional-tags-v1'' 模块中发布了常用标签的定义。提供的标签可以在 [[https://github.com/FabricMC/fabric/tree/HEAD/fabric-convention-tags-v1/src/generated/resources/data/c/tags|这里]] 查看。
 +
 +一个(可能过时的)普遍得到认可的常用标签目录可以在 [[community:common_tags|一个单独的页面]] 看到。
  
 常用标签的列表请参考[[tutorial:tags#Existing Common Tags|英文页面]],其内容[[https://github.com/fabric-community/fabric-convention-tags|由脚本自动生成]]。如果你的物品适用于这些标签中的一个,则应该将其添加到这个标签而非定义你自己的。如果你的模组的配方与其他模组兼容,则在配方中将物品替换为 ''#c:标签名称'' 常用标签的列表请参考[[tutorial:tags#Existing Common Tags|英文页面]],其内容[[https://github.com/fabric-community/fabric-convention-tags|由脚本自动生成]]。如果你的物品适用于这些标签中的一个,则应该将其添加到这个标签而非定义你自己的。如果你的模组的配方与其他模组兼容,则在配方中将物品替换为 ''#c:标签名称''
zh_cn/tutorial/tags.txt · Last modified: 2024/06/30 10:07 by solidblock