Minecraft(我的世界)中文论坛

标题: [VCS] 拼图方块与拼图池教程(1.16.2+) [打印本页]

作者: HangBack_    时间: 2020-8-3 23:34
标题: [VCS] 拼图方块与拼图池教程(1.16.2+)
本帖最后由 HangBack_ 于 2020-12-31 15:59 编辑
闲言:


拼图方块 与 拼图池 教程
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": "",→见下表
可选值
作用
条件
minecraft:empty_pool_element
不生成任何结构
不提供任何模板即可
minecraft:feature_pool_element
生成一个地形
该元素中需含有"elements"键,详见下一个键的介绍
minecaft:list_pool_element
使用元素列表
该元素中需含有"elements"键,详见下一个键的介绍
minecraft:legacy_single_pool_element
只使用location中的结构,使这整个元素变为残骸元素池
如果需要变成残骸,则还需要处理器键,元素中需含有"location"键
minecraft:single_pool_element
只使用location中的结构,使这整个元素变为单元素池
元素中需含有"location"键
——部分摘自中文wiki

                                "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
        拼图方块设置为开启
        点击生成后,我们将得到
                这样1*1*6的结构

石墨稿子:

代码块不知为何鬼畜消失
本教程暂时到此,后续若无误则有可能更新,若有误则必定更新

作者: Lakejason0    时间: 2020-8-4 09:42
啊啊文章截取的Wiki片段好像就是我翻译的……
翻译的可能有错误,若有错误请提出。
作者: PDP    时间: 2020-8-5 15:34
MCbbs有你更精彩
作者: Spectre丶    时间: 2020-8-5 22:48
MCBBS有你更精彩~
作者: (=°ω°)丿    时间: 2020-8-8 14:48
本帖最后由 (=°ω°)丿 于 2020-8-8 14:49 编辑

玩家能用拼图方块了?怎么激活的,红石块吗?
作者: E100撞老鼠    时间: 2020-10-29 20:11
翻来翻去看了几遍,边试边看硬是没看懂
也就是说这玩意有随机抽取结构的功能,然后还能够一个接一个连下去?
但是这要是只能手动激活的话,那用来做图也是挺鸡肋的...
作者: lucyffer    时间: 2020-11-5 19:34
刷分、、、、、、、、、、、、、、、、、、、、、、、、、、、、
作者: Fhblaze    时间: 2020-12-30 21:24
那在基岩版它怎么用呢?
作者: worid.    时间: 2020-12-31 23:20
新人好祝新人2021年快乐 新人好祝新人2021年快乐




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5