创建自定义合成表
创建data目录

在data下方创建modid的目录

在modid的目录下面创建loot_table

在创建repices以及物品合成表的json

在接下来的json文件中输入以下的内容:
{
"type": "minecraft:crafting_shaped",
"pattern": [
"###",
"###",
"###"
],
"key": {
"#": {
"item": "tutorialmod:zircon"
}
},
"result": {
"item": "tutorialmod:zircon_block"
}
} type后面指出的合成方式,这里是用的是有序合成
pattern是合成台中的格子,使用#占位
key指明了站位的#是什么物品。这里指的是zircon,我们加入的物品
result表示合成的结果,item物品,合成一个我们加入的block
如果你其他的合成方式可以再原版的包中找到其他的合成方式。
在这个包的data/minecraft/recipes目录下,你可以看到原版的各种合成表。其他的图片模型资源同样在assets中可以看到。


其他的几个合成依次如下。

熔炉冶炼,时间100,经验0.7,所需的物品和输出的物品。
{
"type": "minecraft:blasting",
"cookingtime": 100,
"experience": 0.7,
"group": "zircon",
"ingredient": {
"item": "tutorialmod:raw_zircon"
},
"result": "tutorialmod:zircon"
} 无需合成,所需的item和输出的item以及数量。
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "tutorialmod:zircon_block"
}
],
"result": {
"item": "tutorialmod:zircon",
"count": 9
}
} 熔炉冶炼,时间,获得经验,所需的item以及结果
{
"type": "minecraft:smelting",
"cookingtime": 200,
"experience": 0.7,
"group": "zircon",
"ingredient": {
"item": "tutorialmod:raw_zircon"
},
"result": "tutorialmod:zircon"
} 掉落物奖池
掉落物奖池包括挖到方块的掉落物。
创建如下的目录结构:

同样的你在原版包的loot_tables下面可以看到原版的掉落表。


在loot_table下面,这里用和上边一样的图。
创建一个json文件

输入如下的内容:
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "tutorialmod:zircon_block"
}
]
}
]
}
type指出了这个掉落奖池是一个方块破坏时候的掉落奖池
pools是掉落的奖池
rolls表示抽取几次
entries奖池奖品
type指明奖品的类型是item
name指明奖品的具体是什么
entries是一个数组,可以放入多个奖品。
在放入另外两个方块掉落的json文件,具体的规则掉落物的奖池设置可以看wiki介绍
> https://minecraft.fandom.com/wiki/Loot_table
这是个网站是一个在线GUI操作生成掉落物奖池得JSON
> https://misode.github.io/loot-table/
deepslate_zircon.json 里的内容
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"name": "tutorialmod:deepslate_zircon_ore"
},
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"count": {
"type": "minecraft:uniform",
"min": 2.0,
"max": 5.0
},
"add": false
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "tutorialmod:raw_zircon"
}
]
}
]
}
]
}
zircon_ore.json 的内容
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"name": "tutorialmod:zircon_ore"
},
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"count": {
"type": "minecraft:uniform",
"min": 2.0,
"max": 5.0
},
"add": false
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "tutorialmod:raw_zircon"
}
]
}
]
}
]
} 增加方块的所需要的tags
创建如下的目录

指定方块的破坏等级和使用的工具。
axe.json
{
"replace": false,
"values": [
]
} hoe.json
{
"replace": false,
"values": [
]
} pickaxe.json
{
"replace": false,
"values": [
"tutorialmod:zircon_ore",
"tutorialmod:zircon_block",
"tutorialmod:deepslate_zircon_ore"
]
} shovel.json
{
"replace": false,
"values": [
]
} need_diamond_tool.json
{
"replace": false,
"values": [
]
} need_iron_tool.json
{
"replace": false,
"values": [
"tutorialmod:zircon_ore",
"tutorialmod:zircon_block",
"tutorialmod:deepslate_zircon_ore"
]
} need_stone_tool.json
{
"replace": false,
"values": [
]
} 其中replace指的是是否覆盖原版的内容。
还记得我们之前的写的代码吗,使用特定的工具才能获得掉落物。

测试
方块拆成9个物品

9个物品合成方块

掉落物



熔炉
