第一百四十二章 礦車(chē)共通標(biāo)簽
我們知道,在Minecraft中,共通標(biāo)簽有這么幾個(gè):
實(shí)體共通標(biāo)簽
生物共同標(biāo)簽
物品共通標(biāo)簽
方塊實(shí)體共通標(biāo)簽
但你們可能不知道,還有這么一個(gè)神奇的共通標(biāo)簽:
礦車(chē)共通標(biāo)簽
沒(méi)錯(cuò),礦車(chē)也有共同標(biāo)簽??赡苁且?yàn)榈V車(chē)的種類(lèi)比較多吧。
——第一節(jié):什么是礦車(chē)共通標(biāo)簽?
礦車(chē)共通標(biāo)簽,相信懂中文的都看得懂,就是礦車(chē)們的NBT中互通的標(biāo)簽。只不過(guò)“礦車(chē)共通標(biāo)簽”相對(duì)來(lái)說(shuō)比較冷門(mén),除了礦車(chē)本身比較冷門(mén),還有一點(diǎn)是因?yàn)椋?p> 礦車(chē)共通標(biāo)簽內(nèi)的標(biāo)簽都是非必填項(xiàng)!
這就導(dǎo)致了一點(diǎn),就是該共通標(biāo)簽就算知道了也很少用到(畢竟誰(shuí)會(huì)去研究一個(gè)沒(méi)有蓋子的鐵盒子呢?)。
但有時(shí)候也是會(huì)用到的。
現(xiàn)在,就讓我們康康這些標(biāo)簽到底是個(gè)什么東西。
——第二節(jié):礦車(chē)共通標(biāo)簽的內(nèi)容
內(nèi)容準(zhǔn)確的來(lái)說(shuō),只有三項(xiàng):
CustomDisplayTile(Byte字節(jié)型:1 or 0[true|false]):選擇是否展示礦車(chē)?yán)镂覀兏愠鰜?lái)的方塊。1為展示。0為不展示。
DisplayState(復(fù)合):設(shè)置放在礦車(chē)?yán)锏姆綁K。
DisplayOffset(Int整形):設(shè)置放在礦車(chē)?yán)锏姆綁K其位置會(huì)偏移多少像素。為正數(shù)+時(shí)向上偏移,為負(fù)數(shù)-時(shí)向下偏移。由于MC中1方塊邊長(zhǎng)都是16像素(一米),所以當(dāng)值為16的倍數(shù)時(shí)會(huì)讓方塊正好移動(dòng)一米。
CustomDisplayTile這就不用說(shuō)了,因?yàn)樯厦嬉呀?jīng)講得很清楚了。我們只需要舉個(gè)例子:
假設(shè)這個(gè)礦車(chē)是一個(gè)TNT礦車(chē)。如果要該礦車(chē)?yán)锏腡NT消失,就要設(shè)置該TNT礦車(chē)中的
{CustomDisplayTile:1}→{CustomDisplayTile:0}
+++++++++
DisplayState是一個(gè)復(fù)合標(biāo)簽,我們已經(jīng)知道這是用于設(shè)置礦車(chē)?yán)锏姆綁K的。
那該如何設(shè)置呢?
很簡(jiǎn)單,讓我們康康其內(nèi)容:
Name(字符串):該方塊的方塊id
Properties(復(fù)合):非必填。該方塊的方塊狀態(tài)。
嗯......這基本上和我們下落的方塊是一樣的。
Properties不用說(shuō),以后再來(lái)研究。
Name就更不用說(shuō),直接舉個(gè)例子:
/summon minecraft:minecart ~~~{CustomDisplayTile:1,DisplayState:{Name:“minecraft:diamond_block“}}
這樣子,你就會(huì)獲得一個(gè)里面放著鉆石塊的礦車(chē)!而且你還可以坐上去!
(只不過(guò)打掉好像并不會(huì)獲得鉆石塊)
+++++++++
現(xiàn)在,我們只剩下了一個(gè):DisplayOffset
DisplayOffset仍然很簡(jiǎn)單。直接上例子:
/summon minecraft:minecart ~~~{CustomDisplayTile:1,DisplayState:{Name:“minecraft:diamond_block“},DisplayOffset:32}
執(zhí)行它,你將會(huì)獲得一個(gè)上面飄著鉆石塊的礦車(chē)!
如果你坐上去,這個(gè)鉆石塊也會(huì)剛好頂在你的頭上。
(把32改為-32會(huì)怎么樣?)
——第三節(jié):舊版本
如果你看過(guò)修改后的上一章,那你應(yīng)該就看過(guò)在此章末尾的小劇場(chǎng)。在此小劇場(chǎng)中,王五、張三、劉一三人四處查找,最終找到了1.12.2版本下落的方塊的正確使用方式。
在上面,我們發(fā)現(xiàn)DisplayState其內(nèi)容和下落的方塊BlockState標(biāo)簽基本相同。而下落的方塊BlockState經(jīng)過(guò)他們?nèi)说奶剿骱?,發(fā)現(xiàn)其是在1.13扁平化時(shí)由Block和Data組成。
那么,既然DisplayState和BlockState這么像,那么......
在1.12.2版本使用/summon minecraft:minecart ~~~{CustomDisplayTile:1,DisplayState:{Name:“minecraft:diamond_block“}}會(huì)發(fā)生什么?
答案很簡(jiǎn)單,生成一個(gè)空空如也的礦車(chē)。
這到底是為什么呢?
答案已經(jīng)很明確了:
DisplayState也是在JAVA1.13扁平化后由兩個(gè)標(biāo)簽組合而成的。
那,這兩個(gè)標(biāo)簽是什么呢?
∵Block+Data=BlockState
又∵BlockState=DisplayState
∴Block+Data=DisplayState
既然我們通過(guò)數(shù)學(xué)的思維得出來(lái)了答案,那就去試一試:
/summon minecraft:minecart ~~~{CustomDisplayTile:1,Block:“minecraft:diamond_block“}
執(zhí)行該指令,我們會(huì)發(fā)現(xiàn)——————
又是一個(gè)空空如也的礦車(chē)!?。。?!
很明顯,數(shù)學(xué)思維在這里單槍匹馬是不行的,我們得弄個(gè)幫手:
語(yǔ)言學(xué)
-What does “DisplayState“ mean in Chinese?
-It means “顯示狀態(tài)“
-What does “BlockState“ mean in Chinese?
-It means “方塊狀態(tài)“
一個(gè)是“顯示狀態(tài)”,一個(gè)是“方塊狀態(tài)”。它們的用途都是設(shè)置方塊,但一個(gè)名字含“方塊”,一個(gè)不含。
這就說(shuō)明了什么?
“顯示狀態(tài)”其實(shí)是把方塊省略了!其真正的全稱是“顯示方塊狀態(tài)”!
好!既然:
方塊(Block)+Data=方塊狀態(tài)
那么:
顯示方塊(DisplayBlock)+Data=顯示方塊狀態(tài)
按照結(jié)果,我們?cè)賮?lái)試下:
/summon minecraft:minecart ~~~{CustomDisplayTile:1,DisplayBlock:“minecraft:diamond_block“}
執(zhí)行,你就會(huì)發(fā)現(xiàn)......
......
......
咋還是個(gè)空空如也的礦車(chē)!
......
......
CustomDisplayTile的作用是“是否顯示方塊”
如果我們把CustomDisplayTile和“是否顯示方塊”進(jìn)行一個(gè)配對(duì),那么:
Custom——是否
Display——顯示
Tile——方塊
把“是否”去掉,就變成了:
DisplayTile(顯示方塊)
這和我們的DisplayBlock是一樣的意思。
那么......使用DisplayTile代替DisplayBlock會(huì)發(fā)生什么?
/summon minecraft:minecart ~~~{CustomDisplayTile:1,DisplayTile:“minecraft:diamond_block“}
執(zhí)行,你就會(huì)獲得一個(gè)裝著鉆石塊的礦車(chē)......
............!
!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
沒(méi)錯(cuò),我們成功了!
在扁平化中,是DisplayTile和DisplayData合并成了DisplayState!
DisplayTile(字符串):設(shè)置顯示在礦車(chē)?yán)锏姆綁K。
在更老的版本(大概是礦車(chē)ID還是MinecartRideable時(shí)。礦車(chē)id改為minecart時(shí)已經(jīng)是1.11版本了,這個(gè)版本也是方塊狀態(tài)出現(xiàn)的版本),DisplayTile還支持方塊數(shù)字id,比如/summon MinecartRideable ~~~{CustomDisplayTile:1,DisplayTile:1}就會(huì)生成一個(gè)載著石頭的礦車(chē)。
在1.8版本以前,DisplayTile只支持方塊數(shù)字id(因?yàn)?.8才更新了方塊英文id)。
DisplayData(數(shù)值,值類(lèi)型不知道):設(shè)置顯示在礦車(chē)?yán)锏姆綁K的數(shù)據(jù)值。
這就是1.13以前的礦車(chē)共通標(biāo)簽。
——第四節(jié):結(jié)束
在結(jié)束的時(shí)候,我要說(shuō)一些東西。
一.上一章的小劇場(chǎng),張三、王五、劉一三人得出來(lái)了四個(gè)結(jié)論。其中:
Data在教程/下落的方塊里并未提及,但應(yīng)該是和Properties一樣,值為復(fù)合標(biāo)簽,代表該方塊的方塊狀態(tài)。
其實(shí)是錯(cuò)誤的。Data在Minecraft 1.11之前就出現(xiàn)了,而方塊狀態(tài)的加入時(shí)間是Minecraft 1.11,時(shí)間上根本不對(duì)。所以,Data實(shí)際作用其實(shí)和DisplayData一樣,設(shè)置該下落的方塊其方塊的數(shù)據(jù)值。
二.Minecraft Wiki 中文中這樣說(shuō)道:
1.13——17w47a——重命名 FallingSand 到 falling_block.
實(shí)際上其重命名的時(shí)間是在1.11版本,和礦車(chē)被重命名的時(shí)間是一樣的。
三.如果你使用瀏覽器的“檢查”來(lái)打開(kāi)礦車(chē)共通標(biāo)簽的頁(yè)面(minecraft-zh.gamepedia.com/Template:Nbt_inherit/vehicle/template),再點(diǎn)開(kāi)歷史,你就會(huì)發(fā)現(xiàn)一個(gè)神奇的東西:
這個(gè)頁(yè)面的最后修改時(shí)間是2016年10月23日07:56,而Minecraft Java 1.12更新時(shí)間是2017年6月7日,扁平化都還沒(méi)有,這咋就開(kāi)始DisplayState了?時(shí)光穿越?
OK,那么本章就到此結(jié)束了。