![]() |
拼图方块 与 拼图池 教程 By VCS |
前言 | |||||||||||||||||||
想要更轻松地看懂本篇教程,你首先得掌握JSON,数据包,结构方块; 当然你也可以选择参考 【1.13-1.16】Minecraft 原版模组入门教程 以获取更多所需要的知识 本教程建议开发工具:visual studio code, 以及可在visual studio code工具内使用的插件:[1.15-1.16] 大憨批(MCF)—— VSCode 数据包函数编辑插件 其他文本编辑软件也可 | |||||||||||||||||||
教程 | |||||||||||||||||||
拼图方块 | |||||||||||||||||||
注释:有*号,代表此选项同时可存储在拼图方块的NBT中,若觉得内容繁杂,且更愿意看wiki的可参考:拼图方块/数据值 首先,我们了解一下拼图方块的界面及其作用 *目标池:此填项可从你所写的拼图池中随机抽取结构(后面详细讲解拼图池) 默认值:minecraft:empty 对应NBT标签:pool 举例:/setblock ~ ~ ~ jigsaw{pool:"minecraft:empty"} *名称:指这个拼图方块的名称,类似于生物名字等,用于标记/识别出这是我们想要的拼图方块 默认值:minecraft:empty 对应NBT标签:name 举例:/setblock ~ ~ ~ jigsaw{name:"minecraft:empty"} *目标名称:指这个拼图方块期望连接的另一个拼图方块(下面会提到如何连接,和这个连接的意思) 默认值:minecraft:empty 对应NBT标签:target 举例:/setblock ~ ~ ~ jigsaw{target:"minecraft:empty"} *转变为:待当前拼图方块完成模板生成后将会被什么方块替换掉(但同时受到下文“拼图方块”选项影响) 默认值:minecraft:air 对应NBT标签:final_state 举例:/setblock ~ ~ ~ jigsaw{final_state:"minecraft:air"} 当你的拼图方块是在纵向表面放置时,拼图方块分别有八种对应状态(上+东南西北,下+东南西北),并且此时的拼图方块会多出一个选项 *连接类型: 当连接类型为“固定”时,这个拼图方块所期望连接的拼图模块会以结构文件中默认形式进行拼接 当连接类型为“可旋转”时,这个拼图方块所期望连接的拼图模块会把即将放置出的拼图模块沿水平方向随机旋转(仅旋转) 默认值:可旋转 举例:/setblock ~ ~ ~ jigsaw{joint:"aligned"}→ 连接类型为:固定 当你的拼图方块是在横向表面放置时,拼图方块分别有四种对应状态(东南西北),并且此时的拼图方块没有“连接类型”选项 生成层数:区间为[0,7] 默认值:0 介绍:用于生成完当前拼图方块的模板后继续生成模块中出现的新拼图方块的对应模板(若无模板了或无新的拼图方块,则停止) 拼图方块:有开启和关闭两种模式 默认值:开启 介绍:开启后在拼图方块完成当前模板生成后会被“转变为”项中所对应的有效的方块替换掉,但值得注意,除非是被拼图池洗出并生成,否则第一个拼图方块无论如何都不会转变为“转变为”项中的方块(经实践,若有误请指正,谢谢) 生成:点击后即可按当前界面所配置的内容去生成目标池中的模板,但如果在生成的模板中未发现名称为此拼图方块的“目标名称”的拼图方块,则不会成功生成模板 举例:/setblock ~ ~ ~ jigsaw[facing="east"]{pool:"minecraft:village/plains/streets",name:"test",target:"minecraft:street",final_state:"minecraft:air"} 完成后打开界面 将生成层数调到7 拼图方块设置为关闭并点击生成 你将得到一个随机生成的平原村庄的道路 | |||||||||||||||||||
拼图池 | |||||||||||||||||||
路径datapacks/data/命名空间/worldgen/template_pool/xxx.json,如果你觉得繁杂,可参考:自定义世界生成/拼图池/JSON格式 模板及键的介绍 "name": "",→该池你所定义的命名空间,对应拼图方块中的目标池,目标池使用的ID就来自此段 "fallback": "",→如果你的结构生成完了,并且无法再尝试生成,即可使用此段连接另一个拼图池继续生成(也可作为该拼图分支末端) "elements": [→元素列表,可以存{}此样形式的元素 { "weight": 整数,→决定该元素在整个表中的权重,或抽中的频数 "location": "",→结构ID,即结构方块加载结构时填写的结构名称 "projection": "",→可为rigid或terrain_matching,前者可让该结构直接调用结构文件中的结构来生成结构(地形可能被结构破坏),后者会与地形匹配,可能会使地形/结构自然变形 "element_type": "",→见下表
"elements": [],→包含其根标签包含的所有标签(其根标签为[]外的elements) } ] 暂不提供处理器介绍(我还未使用过,作用可见minecraft wiki official) | |||||||||||||||||||
拼图方块与拼图池工作原理 | |||||||||||||||||||
举例表明:若一个拼图方块{pool:"xiaodou",name:"a",target:"b"},并朝向北方 假设在游戏中有这样两个结构,一个结构"xiaodou" 我们看到的样子是(暂时用命令方块图标代替拼图方块) ![]() ![]() ![]() ![]() 且该结构大小仅为这1*1*3 其中这个结构里的 "←"方向拼图方块的NBT{pool:"minecraft:empty",name:"b",target:"minecraft:empty",final_state:"minecraft:redstone_block"} "→"方向的拼图方块的NBT{pool:"rainbow",name:"c",target:"d",final_state:"minecraft:redstone_block"} 另一个结构"rainbow"是 ![]() ![]() 且该结构大小仅为1*1*2 其中这个结构里的 拼图方块的NBT{pool:"minecraft:empty",name:"d",target:"minecraft:empty",final_state:"minecraft:redstone_block"} 则当我们在游戏中将前面第一个提到的拼图方块打开(文本已用紫色标注) [szie=4] 生成层数调整为2 拼图方块设置为开启 点击生成后,我们将得到 ![]() ![]() ![]() ![]() ![]() ![]() |
欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) | Powered by Discuz! X3.5 |