第八十一章 structure-指令與結(jié)構(gòu)方塊
?。ū菊乱延?022/7/20~21日重寫)
在前面兩章,我們迅速的學(xué)習(xí)了一下結(jié)構(gòu)方塊的大致使用方法。但這結(jié)構(gòu)方塊跟指令有什么關(guān)系呢?結(jié)構(gòu)方塊也就只有一個玩家無法使用的『數(shù)據(jù)模式』才能和指令扯上邊。
雖然結(jié)構(gòu)方塊和指令沒有什么直接的關(guān)系,但在基巖版卻有一條指令和結(jié)構(gòu)方塊的功能很有關(guān)系。它就是:/structure
/structure
作用:和結(jié)構(gòu)方塊差不多。儲存、加載或刪除已保存的結(jié)構(gòu)。
存在版本:基巖版1.16.100-今
需要權(quán)限等級:基巖版-1
需要作弊:是
格式:
\\儲存\\
/structure save <結(jié)構(gòu)名稱><起點坐標(biāo)><終點坐標(biāo)>[存儲方式]
/structure save <結(jié)構(gòu)名稱><起點坐標(biāo)><終點坐標(biāo)>[保存實體:布爾值][存儲方式][保存方塊:布爾值]
\\加載\\
/structure load <結(jié)構(gòu)名稱><區(qū)域基點>[旋轉(zhuǎn)角度][鏡像方式][加載實體:布爾值][加載方塊:布爾值][結(jié)構(gòu)完整度][種子]
/structure load <結(jié)構(gòu)名稱><區(qū)域基點>[旋轉(zhuǎn)角度][鏡像方式][動畫模式][動畫時長][加載實體:布爾值][加載方塊:布爾值][結(jié)構(gòu)完整度][種子]
\\刪除\\
/structure delete <結(jié)構(gòu)名稱>
仔細(xì)看一下上面的格式,你就會發(fā)現(xiàn)除了/structure指令多了一個delete的功能外,其他的功能結(jié)構(gòu)方塊都有。所以我們這邊就不需要詳細(xì)的學(xué)習(xí)了,我們只需要講一下一些參數(shù)即可。
和結(jié)構(gòu)方塊不一樣的是,structure選取結(jié)構(gòu)是采用類似于/fill指令的『<起點坐標(biāo)><終點坐標(biāo)>』,即指定兩個坐標(biāo)來選取區(qū)域,比如下面的例子:
/structure save grass ~1 ~1 ~1 ~-1 ~-1 ~-1
這將會把執(zhí)行地點周圍3×3×3的空間全部保存起來到內(nèi)存中。
而structure加載結(jié)構(gòu)就像/clone指令選取要復(fù)制到的位置,都是采取指定『區(qū)域基點』坐標(biāo)的方式。這『區(qū)域基點』也就是指你要復(fù)制到的區(qū)域中,xyz三個軸值最小的地方,也就是所謂的『下西北角』。
『存儲方式』參數(shù)可以填寫兩個值:memory(保存在內(nèi)存中[默認(rèn)])和disk(保存至磁盤)。比如:
/structure save grass ~1 ~1 ~1 ~-1 ~-1 ~-1 memory
這將會把執(zhí)行地點周圍3×3×3的空間全部保存起來到內(nèi)存中。
需要注意的是,如果你在內(nèi)存中和磁盤中都保存了同樣名稱的結(jié)構(gòu),游戲在加載或保存過程中,如果未指定是從『內(nèi)存』還是從『磁盤』,游戲就會優(yōu)先選取內(nèi)存中的結(jié)構(gòu)。比如你將一個村民的家保存到磁盤中的『home』結(jié)構(gòu),然后將你的家保存到內(nèi)存中的『home』結(jié)構(gòu),如果運行下面的指令:
/structure load home ~~~
這將會加載出你的家,而不是村民的家。只有當(dāng)你退出重進游戲之后,上述指令才會加載出村民的家。
『旋轉(zhuǎn)角度』參數(shù)有些特別,它并不是直接填寫度數(shù),而是填寫『0_degrees』、『90_degrees』、『180_degrees』和『270_degrees』。舉個例子:
/structure load home ~~~ 270_degrees
假如你還沒有退出重進游戲,那么上面的指令將會加載出你的家,并且會以結(jié)構(gòu)的中心順時針旋轉(zhuǎn)270°。
『鏡像方式』參數(shù)和execute的align子命令有些類似,它能夠填寫四個值:『none』(沒有鏡像)、『x』(對于x軸鏡像)、『z』(對于z軸鏡像)、『xz』(對于x和z軸鏡像)。當(dāng)然,它并不能填寫『zx』,也就是不能亂排。舉個例子:
/structure load home ~~~ 270_degrees xz
這將會加載出一個相對于x、z軸鏡像的,順時針旋轉(zhuǎn)270°的你家。
『加載/保存實體:布爾值』和『加載/保存方塊:布爾值』兩個參數(shù)就不必說了,填寫true(開啟)或false(關(guān)閉)即可。
『結(jié)構(gòu)完整度』參數(shù)和結(jié)構(gòu)方塊的『結(jié)構(gòu)完整度』一模一樣,都是填寫一個0~100(含)的數(shù)?!悍N子』參數(shù)就更不必說,隨便寫都行,反正游戲會幫你轉(zhuǎn)化。比如:
/structure load home ~~~ 270_degrees xz true true 90 What_is_up
這將會加載出一個相對于x、z軸鏡像的,順時針旋轉(zhuǎn)270°的,只有90%完整度的,種子為『What_is_up』的你家。
『動畫模式』參數(shù)可以填寫兩個值:block_by_block(按照方塊放置)和layer_by_layer(按照層數(shù)放置),并不能選『無』。只不過你不填寫『動畫模式』參數(shù)的話,不就不會有動畫了嗎。『動畫時長』參數(shù)也是指定加載動畫的時長,單位也是秒。舉個例子:
/structure load home ~~~ 0_degrees none block_by_block 20
這將會在20秒內(nèi)一個方塊一個方塊地把你房子搭建出來。
最后,讓我們嘗試刪除保存著你房子的結(jié)構(gòu),來實現(xiàn)不重進游戲也能夠加載村民的房子:
/structure delete home
然后你就會發(fā)現(xiàn)一件事情——村民的房子也被刪掉了。
沒錯,delete子命令不會管你是內(nèi)存還是磁盤,只要有叫這個名稱的結(jié)構(gòu)就會刪掉。也就是說,運行上述指令,會同時刪除掉內(nèi)存和磁盤中的home結(jié)構(gòu)。
這就是本章的全部內(nèi)容了。
附表:/structure歷史
基巖版
1.16.100——加入了/structure
1.16.210——/structure新增了delete子命令,可以刪除已保存結(jié)構(gòu)