Tags 1.20 Forge 长线教程计划
本篇教程的视频
(待发布)
本篇教程的源代码
(待发布)
简介
在Minecraft中,标签(Tag)用于对方块、物品等东西进行分类,生物群系、实体等也都有各自的标签
本期教程我们主要来添加方块和物品的标签
注册标签
方块标签
首先我们来看方块标签的添加,我们创建一个ModBlockTags类,用于存放我们自定义的方块标签
1 | public class ModBlockTags { |
然后我们在类中添加一个静态方法create,用于注册标签
1 | private static TagKey<Block> create(String pName) { |
这里的pName参数是标签的名称,TutorialMod.MOD_ID是我们模组的ID
接下来我们在类中添加一些标签
1 | public static final TagKey<Block> ORE_TAGS = create("ore_tags"); |
这里我们创建了一个名为ore_tags的方块标签
这也是之后用在探矿器上的标签
物品标签
物品标签的添加和方块标签类似,我们创建一个ModItemTags类
1 | public class ModItemTags { |
然后我们添加一个静态方法bind,用于注册物品标签
1 | private static TagKey<Item> bind(String pName) { |
接下来我们添加一些物品标签
1 | public static final TagKey<Item> SUGAR_TAG = bind("sugar_tag"); |
这里我们创建了一个名为sugar_tag的物品标签
使用标签
方块标签的使用
这里我们来改写之前写的探矿器,之前写的矿物判断是直接判断方块,现在我们改成使用标签来判断
1 | private boolean isCorrectBlock(BlockState blockState) { |
这里我们使用了blockState.is(TagKey<Block> tag)方法来判断当前方块是否属于指定的标签
物品标签的使用
物品标签的使用也类似,这里我们以配方为例
1 | ShapedRecipeBuilder.shaped(RecipeCategory.FOOD, Items.SUGAR, 3) |
这里我们使用了define方法来定义配方中的材料,使用了物品标签ModItemTags.SUGAR_TAG
数据生成
当然,我们的标签还是空的,所以可以使用数据生成来为标签添加内容
方块标签的数据生成
在之前创建的ModBlockTagsProvider类中,我们添加方块标签的数据生成代码
1 | this.tag(ModBlockTags.ORE_TAGS) |
这里我们为ore_tags标签添加了一些矿物方块
add方法用于添加单个方块,addTag方法用于添加已有的标签
物品标签的数据生成
在之前创建的ModItemTagsProvider类中,我们添加物品标签的数据生成代码
1 | this.tag(ModItemTags.SUGAR_TAG) |
这里我们为sugar_tag标签添加了甜菜和草莓物品
方块和物品的标签就是这个样子,在未来的教程中,我们还会继续使用标签来实现更多的功能











