我们知道,在minecraft中,共通标签有这么几个:
实体共通标签
生物共同标签
物品共通标签
方块实体共通标签
但你们可能不知道,还有这么一个神奇的共通标签:
矿车共通标签
没错,矿车也有共同标签。可能是因为矿车的种类比较多吧。
——第一节:什么是矿车共通标签?
矿车共通标签,相信懂中文的都看得懂,就是矿车们的Nbt中互通的标签。只不过“矿车共通标签”相对来说比较冷门,除了矿车本身比较冷门,还有一点是因为:
矿车共通标签内的标签都是非必填项!
这就导致了一点,就是该共通标签就算知道了也很少用到(毕竟谁会去研究一个没有盖子的铁盒子呢?)。
但有时候也是会用到的。
现在,就让我们康康这些标签到底是个什么东西。
——第二节:矿车共通标签的内容
内容准确的来说,只有三项:
customdisplaytile(byte字节型:1 or 0[true|false]):选择是否展示矿车里我们搞出来的方块。1为展示。0为不展示。
displayState(复合):设置放在矿车里的方块。
displayoffset(Int整形):设置放在矿车里的方块其位置会偏移多少像素。为正数+时向上偏移,为负数-时向下偏移。由于mc中1方块边长都是16像素(一米),所以当值为16的倍数时会让方块正好移动一米。
customdisplaytile这就不用说了,因为上面已经讲得很清楚了。我们只需要举个例子:
假设这个矿车是一个tNt矿车。如果要该矿车里的tNt消失,就要设置该tNt矿车中的
{customdisplaytile:1}→{customdisplaytile:0}
+++++++++
displayState是一个复合标签,我们已经知道这是用于设置矿车里的方块的。
那该如何设置呢?
很简单,让我们康康其内容:
Name(字符串):该方块的方块id
properties(复合):非必填。该方块的方块状态。
嗯......这基本上和我们下落的方块是一样的。
properties不用说,以后再来研究。
Name就更不用说,直接举个例子:
\/summon minecraft:minecart ~~~{customdisplaytile:1,displayState:{Name:“minecraft:diamond_block“}}
这样子,你就会获得一个里面放着钻石块的矿车!而且你还可以坐上去!
(只不过打掉好像并不会获得钻石块)
+++++++++
现在,我们只剩下了一个:displayoffset
displayoffset仍然很简单。直接上例子:
\/summon minecraft:minecart ~~~{customdisplaytile:1,displayState:{Name:“minecraft:diamond_block“},displayoffset:32}
执行它,你将会获得一个上面飘着钻石块的矿车!
如果你坐上去,这个钻石块也会刚好顶在你的头上。
(把32改为-32会怎么样?)
——第三节:旧版本
如果你看过修改后的上一章,那你应该就看过在此章末尾的小剧场。在此小剧场中,王五、张三、刘一三人四处查找,最终找到了1.12.2版本下落的方块的正确使用方式。
在上面,我们发现displayState其内容和下落的方块blockState标签基本相同。而下落的方块blockState经过他们三人的探索后,发现其是在1.13扁平化时由block和data组成。
那么,既然displayState和blockState这么像,那么......
在1.12.2版本使用\/summon minecraft:minecart ~~~{customdisplaytile:1,displayState:{Name:“minecraft:diamond_block“}}会发生什么?
答案很简单,生成一个空空如也的矿车。
这到底是为什么呢?
答案已经很明确了:
displayState也是在JAVA1.13扁平化后由两个标签组合而成的。
那,这两个标签是什么呢?
∵block+data=blockState
又∵blockState=displayState
∴block+data=displayState
既然我们通过数学的思维得出来了答案,那就去试一试:
\/summon minecraft:minecart ~~~{customdisplaytile:1,block:“minecraft:diamond_block“}
执行该指令,我们会发现——————
又是一个空空如也的矿车!!!!!
很明显,数学思维在这里单枪匹马是不行的,我们得弄个帮手:
语言学
-what does “displayState“ mean in chinese?
-It means “显示状态“
-what does “blockState“ mean in chinese?
-It means “方块状态“
一个是“显示状态”,一个是“方块状态”。它们的用途都是设置方块,但一个名字含“方块”,一个不含。
这就说明了什么?
“显示状态”其实是把方块省略了!其真正的全称是“显示方块状态”!
好!既然:
方块(block)+data=方块状态
那么:
显示方块(displayblock)+data=显示方块状态
按照结果,我们再来试下:
\/summon minecraft:minecart ~~~{customdisplaytile:1,displayblock:“minecraft:diamond_block“}
执行,你就会发现......
......
......
咋还是个空空如也的矿车!
......
......
customdisplaytile的作用是“是否显示方块”
如果我们把customdisplaytile和“是否显示方块”进行一个配对,那么:
custom——是否
display——显示
tile——方块
把“是否”去掉,就变成了:
displaytile(显示方块)
这和我们的displayblock是一样的意思。
那么......使用displaytile代替displayblock会发生什么?
\/summon minecraft:minecart ~~~{customdisplaytile:1,displaytile:“minecraft:diamond_block“}
执行,你就会获得一个装着钻石块的矿车......
............!
!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
没错,我们成功了!
在扁平化中,是displaytile和displaydata合并成了displayState!
displaytile(字符串):设置显示在矿车里的方块。
在更老的版本(大概是矿车Id还是minecartRideable时。矿车id改为minecart时已经是1.11版本了,这个版本也是方块状态出现的版本),displaytile还支持方块数字id,比如\/summon minecartRideable ~~~{customdisplaytile:1,displaytile:1}就会生成一个载着石头的矿车。
在1.8版本以前,displaytile只支持方块数字id(因为1.8才更新了方块英文id)。
displaydata(数值,值类型不知道):设置显示在矿车里的方块的数据值。
这就是1.13以前的矿车共通标签。
——第四节:结束
在结束的时候,我要说一些东西。
一.上一章的小剧场,张三、王五、刘一三人得出来了四个结论。其中:
data在教程\/下落的方块里并未提及,但应该是和properties一样,值为复合标签,代表该方块的方块状态。
其实是错误的。data在minecraft 1.11之前就出现了,而方块状态的加入时间是minecraft 1.11,时间上根本不对。所以,data实际作用其实和displaydata一样,设置该下落的方块其方块的数据值。
二.minecraft wiki 中文中这样说道:
1.13——17w47a——重命名 FallingSand 到 falling_block.
实际上其重命名的时间是在1.11版本,和矿车被重命名的时间是一样的。
三.如果你使用浏览器的“检查”来打开矿车共通标签的页面(minecraft-zh.gamepedia.\/template:Nbt_inherit\/vehicle\/template),再点开历史,你就会发现一个神奇的东西:
这个页面的最后修改时间是2016年10月23日07:56,而minecraft Java 1.12更新时间是2017年6月7日,扁平化都还没有,这咋就开始displayState了?时光穿越?
oK,那么本章就到此结束了。