第八十一章 structure-指令与结构方块
(本章已于2022/7/20~21日重写)
在前面两章,我们迅速的学习了一下结构方块的大致使用方法。但这结构方块跟指令有什么关系呢?结构方块也就只有一个玩家无法使用的『数据模式』才能和指令扯上边。
虽然结构方块和指令没有什么直接的关系,但在基岩版却有一条指令和结构方块的功能很有关系。它就是:/structure
/structure
作用:和结构方块差不多。储存、加载或删除已保存的结构。
存在版本:基岩版1.16.100-今
需要权限等级:基岩版-1
需要作弊:是
格式:
\\储存\\
/structure save <结构名称><起点坐标><终点坐标>[存储方式]
/structure save <结构名称><起点坐标><终点坐标>[保存实体:布尔值][存储方式][保存方块:布尔值]
\\加载\\
/structure load <结构名称><区域基点>[旋转角度][镜像方式][加载实体:布尔值][加载方块:布尔值][结构完整度][种子]
/structure load <结构名称><区域基点>[旋转角度][镜像方式][动画模式][动画时长][加载实体:布尔值][加载方块:布尔值][结构完整度][种子]
\\删除\\
/structure delete <结构名称>
仔细看一下上面的格式,你就会发现除了/structure指令多了一个delete的功能外,其他的功能结构方块都有。所以我们这边就不需要详细的学习了,我们只需要讲一下一些参数即可。
和结构方块不一样的是,structure选取结构是采用类似于/fill指令的『<起点坐标><终点坐标>』,即指定两个坐标来选取区域,比如下面的例子:
/structure save grass ~1 ~1 ~1 ~-1 ~-1 ~-1
这将会把执行地点周围3×3×3的空间全部保存起来到内存中。
而structure加载结构就像/clone指令选取要复制到的位置,都是采取指定『区域基点』坐标的方式。这『区域基点』也就是指你要复制到的区域中,xyz三个轴值最小的地方,也就是所谓的『下西北角』。
『存储方式』参数可以填写两个值:memory(保存在内存中[默认])和disk(保存至磁盘)。比如:
/structure save grass ~1 ~1 ~1 ~-1 ~-1 ~-1 memory
这将会把执行地点周围3×3×3的空间全部保存起来到内存中。
需要注意的是,如果你在内存中和磁盘中都保存了同样名称的结构,游戏在加载或保存过程中,如果未指定是从『内存』还是从『磁盘』,游戏就会优先选取内存中的结构。比如你将一个村民的家保存到磁盘中的『home』结构,然后将你的家保存到内存中的『home』结构,如果运行下面的指令:
/structure load home ~~~
这将会加载出你的家,而不是村民的家。只有当你退出重进游戏之后,上述指令才会加载出村民的家。
『旋转角度』参数有些特别,它并不是直接填写度数,而是填写『0_degrees』、『90_degrees』、『180_degrees』和『270_degrees』。举个例子:
/structure load home ~~~ 270_degrees
假如你还没有退出重进游戏,那么上面的指令将会加载出你的家,并且会以结构的中心顺时针旋转270°。
『镜像方式』参数和execute的align子命令有些类似,它能够填写四个值:『none』(没有镜像)、『x』(对于x轴镜像)、『z』(对于z轴镜像)、『xz』(对于x和z轴镜像)。当然,它并不能填写『zx』,也就是不能乱排。举个例子:
/structure load home ~~~ 270_degrees xz
这将会加载出一个相对于x、z轴镜像的,顺时针旋转270°的你家。
『加载/保存实体:布尔值』和『加载/保存方块:布尔值』两个参数就不必说了,填写true(开启)或false(关闭)即可。
『结构完整度』参数和结构方块的『结构完整度』一模一样,都是填写一个0~100(含)的数。『种子』参数就更不必说,随便写都行,反正游戏会帮你转化。比如:
/structure load home ~~~ 270_degrees xz true true 90 What_is_ubr /
这将会加载出一个相对于x、z轴镜像的,顺时针旋转270°的,只有90%完整度的,种子为『What_is_ubr /』的你家。
『动画模式』参数可以填写两个值:block_by_block(按照方块放置)和layer_by_layer(按照层数放置),并不能选『无』。只不过你不填写『动画模式』参数的话,不就不会有动画了吗。『动画时长』参数也是指定加载动画的时长,单位也是秒。举个例子:
/structure load home ~~~ 0_degrees none block_by_block 20
这将会在20秒内一个方块一个方块地把你房子搭建出来。
最后,让我们尝试删除保存着你房子的结构,来实现不重进游戏也能够加载村民的房子:
/structure delete home
然后你就会发现一件事情——村民的房子也被删掉了。
没错,delete子命令不会管你是内存还是磁盘,只要有叫这个名称的结构就会删掉。也就是说,运行上述指令,会同时删除掉内存和磁盘中的home结构。
这就是本章的全部内容了。
附表:/structure历史
基岩版
1.16.100——加入了/structure
1.16.210——/structure新增了delete子命令,可以删除已保存结构