目录
- 新配方
- 工作台配方
- 无序合成配方
- 有序合成配方
- 熔炉配方
- 挖掘等级与掉落物
- 挖掘等级
- 标准等级配置
- 易错点分析
- 战利品与掉落物
- 普通方块掉落物
- 矿石方块掉落物
新配方
工作台配方
为便于你快速创建配方,可以直接去这个网站上通过拖拽的方式创建属于你的配方表,它会自动生成 json 文件,非常方便!
之后你仅需修改对应的物品方块为我们自定义的即可
https://crafting.thedestruc7i0n.ca/
无序合成配方
此配方用于将宝石块分解为单个锭
注意,minecraft:crafting_shapeless
表示无序合成
{"type": "minecraft:crafting_shapeless","ingredients": [{"item": "tutorialmod:zer_block"}],"result": {"item": "tutorialmod:zer_ingot","count": 9}
}
有序合成配方
下面展示使用 9 个 ingot 合成一个 block 的配方
{"type": "minecraft:crafting_shaped","pattern": ["###", "###", "###"],"key": {"#": {"item": "tutorialmod:zer_ingot"}},"result": {"item": "tutorialmod:zer_block","count": 1}
}
熔炉配方
熔炉配方很简单就三个,一个是普通熔炉配方、一个是高炉配方,当然还有一个烟熏炉配方(只不过我们自定义的物品都是矿石,没法用烟熏炉)
下面是普通熔炉配方(smelting)
{"type": "minecraft:smelting","category": "misc","cookingtime": 200,"experience": 1,"group": "zer","ingredient": {"item": "tutorialmod:zer_diamond"},"result": "tutorialmod:zer_ingot"
}
这个是高炉配方(blasting)
{"type": "minecraft:blasting","category": "misc","cookingtime": 100,"experience": 0.7,"group": "copper_ingot","ingredient": {"item": "minecraft:copper_ore"},"result": "minecraft:copper_ingot"
}
挖掘等级与掉落物
挖掘等级
挖掘等级用于确定你生成的方块能否被挖掘,以及可以使用何种工具进行挖掘
这一步和以往的MOD开发都有不同,由于MC版本迭代原因,内容更新较多,所以必须要按照指定步骤一一执行~
标准等级配置
首先按照下图所示创建这些文件夹和 json 文件
根目录 data 和 asstes 同级!
json 文件默认内容均为:
{"replace": false,"values": []
}
mineable 文件夹下四个文件分别对应斧头、锄头、镐子、铲子可以破坏的对应方块
把你新注册的自定义方块的 id 塞进 values 里面,就表示可以使用这一类工具来破坏
比如我想使用 pickaxe,也就是镐子来破坏宝石方块,那么我应该在 pickaxe.json
里面写:
{"replace": false,"values": ["tutorialmod:zer_block", "tutorialmod:raw_zer_block"]
}
任何一个以“needs”开头的文件均表示方块可以被哪一种等级的工具所挖掘
目前只有四种等级:
- level_4 最高级,即下界合金工具可破坏
- diamond
- iron
- stone
比如我想让我的方块只能被石质材料的工具破坏,那么我需要在 needs_stone_tool.json
里面写对应的 id
{"replace": false,"values": ["tutorialmod:zer_block","tutorialmod:zer_ore","tutorialmod:nether_zer_ore"]
}
总而言之,你需要设置两次:
- 第一次,在对应的工具 json 文件内设置,确定方块可被破坏的最佳工具
- 第二次,在对应的工具等级 json 文件内设置,确定方块可被破坏的工具等级
易错点分析
needs_tool_level_4.json
可被下界合金工具破坏的方块,这个文件只能在上图显示的固定文件夹内书写!
上图所示的所有文件以及文件夹名称都是死规定!别乱改!照抄就可以了!!!
战利品与掉落物
对于某些特殊的方块,我们需要设置不同类型的掉落物
- 普通方块:掉落方块本身
- 矿石方块:掉落一定数量的矿石原矿
掉落物配置请在该文件夹下配置:tutorialmod/loot_tables/blocks
,每个方块对应一种掉落方式!
普通方块掉落物
在这里推荐一个快速生成 loot_tabels 的网站,可以提升开发效率:https://misode.github.io/loot-table/
比如挖掘一个普通方块,直接掉落他自身,那就不需要过多设置,直接抄下方代码即可
你要修改的地方就是我加注释的地方
代码清单 zer_block.json
{"type": "minecraft:block","pools": [{"bonus_rolls": 0.0,"conditions": [{"condition": "minecraft:survives_explosion"}],"entries": [{"type": "minecraft:item","name": "tutorialmod:zer_block" // 把他修改为方块ID}],"rolls": 1.0}]
}
矿石方块掉落物
矿石挖掘后会掉落任意数量的矿石原矿,需要人为指定这个范围
同样的,你只需要修改下方代码注释部分,其他的保持默认直接套用即可
{"type": "minecraft:block","pools": [{"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}}]}}],// 设置你的方块ID"name": "tutorialmod:end_stone_zer_ore"},{"type": "minecraft:item","functions": [{"add": false,"count": {"type": "minecraft:uniform",// 挖掘后掉落物的数量范围"max": 6.0,"min": 4.0},"function": "minecraft:set_count"},{"enchantment": "minecraft:fortune","formula": "minecraft:ore_drops","function": "minecraft:apply_bonus"},{"function": "minecraft:explosion_decay"}],// 挖掘后掉落的物品或者方块"name": "tutorialmod:zer_diamond"}]}],"rolls": 1.0}],"random_sequence": "minecraft:blocks/copper_ore"
}