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 [2021/08/02 11:31] – [标签示例] solidblockzh_cn:tutorial:tags [2024/06/02 16:58] (current) – 增添新的内容 sjk1949
Line 3: Line 3:
  
 ===== 标签示例 ===== ===== 标签示例 =====
-文件位置:''src/main/resources/data/examplemod/tags/blocks/example_ores.json''+ 
 +==== 在 JSON 文件中定义 ==== 
 + 
 +文件位置:''src/main/resources/data/tutorial/tags/blocks/example_ores.json''
 <code javascript> <code javascript>
 { {
     "replace": false,     "replace": false,
     "values": [     "values": [
-        "examplemod:example_ore"+        "tutorial:example_ore"
     ]     ]
 } }
 </code> </code>
 +
 ''"replace"'' 标签决定了模组是否要从标签中移除该文件中未提及的其他物品。不建议设为true,且破坏和其他模组的兼容性。文件路径的 ''blocks'' 也可以是 ''items'' 或者 ''fluids'',用于表示不同的类型。多个词语用下划线隔开,且标签名称使用复数形式(不可数名词除外)。 ''"replace"'' 标签决定了模组是否要从标签中移除该文件中未提及的其他物品。不建议设为true,且破坏和其他模组的兼容性。文件路径的 ''blocks'' 也可以是 ''items'' 或者 ''fluids'',用于表示不同的类型。多个词语用下划线隔开,且标签名称使用复数形式(不可数名词除外)。
  
-如需注册标签并在代码中使用,你需要如下使用(注意需要使用 Fabric API): +==== 在代码中使用标签 ====
-<code java> +
-import net.fabricmc.fabric.api.tag.TagRegistry; +
-import net.minecraft.block.Block; +
-import net.minecraft.tag.Tag; +
-import net.minecraft.util.Identifier;+
  
-public class BlockTags +在一些情况下,你可能想要在代码中使用带有标签的注册物品。比如,像 ''Block#isIn'' 一类的方法需要这些标签参数。除此之外,例如 ''FlammableBlockRegistry'', ''FuelRegistry'' 以及 ''CompostingChanceRegistry'' 这样的 Fabric 注册表也接受方块标签或者物品标签。 
-  public static final Tag<Block> EXAMPLE_ORES = TagRegistry.block(new Identifier("examplemod", "example_ores"));+ 
 +原版的标签物品可以在 ''<yarn class_3481>'' 和 ''<yarn class_3489>'' 类中找到。如需注册标签并在代码中使用,你需要这样使用: 
 + 
 +=== 1.19.3 及以上 === 
 + 
 +<yarncode java> 
 +public class ModBlockTags 
 +  public static final TagKey<class_2248> EXAMPLE_ORES = class_6862.method_40092(class_7924.field_41254, new class_2960("tutorial", "example_ores"));
 } }
-</code+</yarncode> 
-===== 常标签和模组标签 ===== + 
-如果你的标签仅仅适用于你的模组,其他的模组不太可能有类似物品,或你尤其只需要将你的模组的物品包含到标签中,则使用 ''的模组id:你的标签''上面的这个例子。如果你的模组添加其他模组也会添加的物品,以:+=== 1.19.2 及以下 === 
 + 
 +<yarncode java> 
 +public class ModBlockTags { 
 +  public static final TagKey<class_2248> EXAMPLE_ORES = class_6862.method_40092(class_2378.BLOCK_KEY, new class_2960("tutorial", "example_ores")); 
 +
 +</yarncode> 
 + 
 +=== 1.18.1 及以下(需要 Fabric API) === 
 + 
 +<yarncode java> 
 +public class ModBlockTags { 
 +  public static final Tag<class_2248> EXAMPLE_ORES = TagFactory.BLOCK.create(new class_2960("tutorial", "example_ores")); 
 +
 +</yarncode> 
 + 
 +=== 1.17 及以下,不含 1.17.1(需要 Fabric API) === 
 + 
 +<yarncode java> 
 +public class ModBlockTags { 
 +  public static final Tag<class_2248> EXAMPLE_ORES = TagRegistry.block(new class_2960("tutorial", "example_ores")); 
 +
 +</yarncode> 
 + 
 +注意由于 ''TagFactory'' 的出现,''TagRegistry'' 自从 Fabric API 0.46.0 已经弃用。''TagRegistry'' 可以在我的世界1.17及低于1.17的版本使用,因为这些版本的 Fabric API 没有收到 ''TagFactory'' 的更新。 
 + 
 +===== 常标签和模组标签 ===== 
 + 
 +常用标签是一种标准化的标签命名方案,旨在减少模组开发者,数据包作者和模组整合包作者的推理工作和不一致性。这些标签共享 ''c'' 命名空间并且有明确的命名规则。 
 + 
 +当一个模组添加的一段内容与另一个模组增加的另一段内容足够相似时,应该使用常用标签,以使两个项目之间的功能可以互换。例如,如果一个模组为它添加的一种木材类型添加了一个自定义箱子,它可能会将这个箱子添加到 ''c:wooden_chests'' 标签中,以便于在别的模组的合成配方中可以使用。 
 + 
 +另一方面,如果你的标签仅仅适用于你的模组,其他的模组不太可能有类似物品,或你尤其只需要将你的模组的物品包含到标签中,则不应该使用常用标签。比如,如果一个模组添加了一系列独特,必须单独用一个标签划分的机器,那么这个模组应该把这些机器放到它自己命名空间下的一个标签中,例如 ''yourmodid:custom_machines'' 。 
 +==== 创建新的常用标签 ==== 
 + 
 +常用标签指 ''c'' 命名空间中标签,些标签可能会被多个模组使用,因此常用标签的命名方法应该在模组中保持一致。创建文件时,使用文件路径 ''src/main/resources/data/c/tags/''的 ''blocks''、''items'' 或者 ''fluids''。常用标签的名称使用复数形式(不可数名词除外),单词之间用下划线隔开。下面标签是这个约定的范例: 
 + 
 +  * ''c:chests'' 方块标签 
 +  * ''c:water_buckets'' 物品标签 
 +  * ''c:in_the_end'' 生物群落标签 
 + 
 +标签名应使用平面结构而不是层次结构。比如''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|这里]] 查看
-常用标签使用 ''c:你的标签'' 这样的语法,其中 ''c'' 代表常用创建文件时,使用文件路径 ''src/main/resources/data/c/tags/'' 中的 ''blocks''、''items'' 或者 ''fluids''。多个词语用下划线隔开,且标签名称使用复数形式(不可数名词除外)+
  
-======= 已存在的常用标签 =======+一个(可能过时的)普遍得到认可的常用标签目录可以在 [[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.1627903888.txt.gz · Last modified: 2021/08/02 11:31 by solidblock