首发于Enaium的个人博客
在之前我们已经添加了物品、物品组和方快,但是它们还没有名称,这里可以使用多语言来为它们添加名称。
我们在assets/awesome/lang
目录下创建一个en_us.json
文件,这个文件就是英文语言文件,我们可以在这个文件中添加多语言。
{
"item.awesome.end_heart": "End Heart",
"item.awesome.end_heart_block": "End Heart Block",
"block.awesome.end_heart_block": "End Heart Block",
"itemGroup.awesome.item_group": "Awesome"
}
合成表是用来合成物品的,我们可以在这里设置合成物品的配方。
在data\awesome\recipes
创建一个end_heart_block.json
文件,也就是如何在工作台中合成end_heart_block.json
。
其中type
是合成表的类型,pattern
是合成表的合成模式,也就是在工作台中的物品摆放位置,key
是合成表的材料,result
是合成表的结果。
{
"type": "minecraft:crafting_shaped",
"pattern": [
"EEE",
"EEE",
"EEE"
],
"key": {
"E": {
"item": "awesome:end_heart"
}
},
"result": {
"item": "awesome:end_heart_block",
"count": 1
}
}
接着我们需要再添加一个分解的合成表,也就是如何将end_heart_block
分解成end_heart
。
在data\awesome\recipes
创建一个end_heart.json
文件。
和之前的合成表不同的是,这个合成表的type
是minecraft:crafting_shapeless
,也就是无序合成表,ingredients
是合成表的材料,result
是合成表的结果。
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "awesome:end_heart_block"
}
],
"result": {
"item": "awesome:end_heart",
"count": 9
}
}
我们可以在方块上添加提示,当玩家将鼠标悬停在方块上时,就会显示提示。
在EndHeartBlock
中添加appendTooltip
方法,之后调用tooltip.add
添加提示,使用Text.translatable
方法可以将多语言的key转换为对应的多语言。
public class EndHeartBlock extends Block {
@Override
public void appendTooltip(ItemStack stack, @Nullable BlockView world, List<Text> tooltip, TooltipContext options) {
tooltip.add(Text.translatable("tooltip.awesome.end_heart_block"));
}
}
public class EndHeartItem extends Item {
@Override
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip, TooltipContext context) {
tooltip.add(Text.translatable("tooltip.awesome.end_heart"));
}
}
{
"tooltip.awesome.end_heart": "End Heart",
"tooltip.awesome.end_heart_block": "End Heart Block"
}