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
Last revisionBoth sides next revision
zh_cn:tutorial:tags [2022/03/26 16:55] solidblockzh_cn:tutorial:tags [2024/06/02 16:45] – [已存在的常用标签] sjk1949
Line 15: Line 15:
  
 如需注册标签并在代码中使用,你需要这样使用: 如需注册标签并在代码中使用,你需要这样使用:
 +=== 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"));
 +}
 +</yarncode>
  
-==== 1.18.2及以上高====+=== 1.19.2 及以下 ===
  
-<code java> +<yarncode java> 
-import net.minecraft.block.Block; +public class ModBlockTags 
-import net.minecraft.tag.TagKey; +  public static final TagKey<class_2248> EXAMPLE_ORES = class_6862.method_40092(class_2378.BLOCK_KEY, new class_2960("tutorial", "example_ores"));
-import net.minecraft.util.Identifier; +
-import net.minecraft.util.registry.Registry; +
-  +
-public class BlockTags +
-  public static final TagKey<Block> EXAMPLE_ORES = TagKey.of(Registry.BLOCK_KEY, new Identifier("tutorial", "example_ores"));+
 } }
-</code>+</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.18.1及以下(需要 Fabric API) ==== +=== 1.17 及以下,不含 1.17.1(需要 Fabric API) === 
-<code java> +<yarncode java> 
-import net.fabricmc.fabric.api.tag.TagRegistry; +public class ModBlockTags 
-import net.minecraft.block.Block; +  public static final Tag<class_2248> EXAMPLE_ORES = TagRegistry.block(new class_2960("tutorial", "example_ores"));
-import net.minecraft.tag.Tag; +
-import net.minecraft.util.Identifier; +
- +
-public class BlockTags +
-  public static final Tag<Block> EXAMPLE_ORES = TagRegistry.block(new Identifier("tutorial", "example_ores"));+
 } }
-</code+</yarncode> 
-===== 常标签和模组标签 ===== + 
-如果你的标签仅仅适用于你的模组,其他的模组不太可能有类似物品,或你尤其只需要将你的模组的物品包含到标签中,则使用 ''的模组id:你的标签''上面的这个例子。如果你的模组添加其他模组也会添加的物品,以:+注意 ''TagRegistry'' 自从 Fabric API 0.46.0 已经弃用,此时已有 ''TagFactory'',但不支持 1.17。 
 + 
 +===== 常标签和模组标签 ===== 
 + 
 +常用标签是一种标准化的标签命名方案,旨在减少模组开发者,数据包作者和模组整合包作者的推理工作和不一致性。这些标签共享 ''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.txt · Last modified: 2024/06/02 16:58 by sjk1949