首发于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"
}