本次研究的structure为minecraft内置的,位置为xxx.jar\assets\minecraft\structures。由于这个格式并不是txt模式,因此需要特殊方法才能检索,建议使用NBT Explorer
———————————

从这里我们可以看到,structure的文件有六个标签:
-blocks: 这是一个列表格式的标签,里面的子标签为compound格式,存有每个方块的位置及数值(下方将会详细介绍)
-entities: 这也是一个列表格式的标签,这里暂时没法进行研究
-palette: 这是一个列表格式的标签,里面的子标签为compound格式,存有方块id及方块属性(下方将会详细介绍)
-size: 这是一个列表格式的标签,里面的子标签为整数(int)格式,分别储存该结构的x、y、z大小
-author: 这是一个字串格式的标签,数值应该是作者的名字?暂时未能发现有任何用途
-version: 这是一个整数(int)格式的标签,未发现有任何用途
———————————

这是entity里面的一个compound(感谢@chyx)
里面有三个标签:
- nbt: 储存着实体的nbt
- blockPos: 储存着实体所在方块坐标(xyz, int)
- pos: 储存着实体的精确位置(xyz, double)
nbt里面的格式和一般实体的格式一样,里面有uuid、pos等等的nbt,不过uuid及pos就会被游戏无视
*详见五楼, by chyx
———————————

这是blocks里面的一个compound,可以看见有三个标签:
-nbt: compound, 储存着那个方块的nbt
-pos: list(子标签为三个int), 储存着那个方块的x、y、z坐标(相对于原点,也就是储存/加载的时候指定的位置)
-state: int, 储存方块的资料(数据值、方块id),数值为相应方块在palette里的索引值(从0开始),下面将会提供一个例子
———————————

这是palette里面的一个compound,可以看见有两个标签:
-Properties: 方块属性,储存着比如朝向等特殊的方块属性,估计就是材质的那个属性,也就是数据值的一部分
-Name: 方块id,储存着方块的种类
———————————
xxx.nbt(为了方便编写,我用了json格式,并且简化了一点,只写出需要看的)
state为0的就是palette里第一个方块,也就是空气
state为1的就是palette里第二个方块,也就是石头
state为2的就是palette里第三个方块,也就是白色的玻璃
所以这个结构就是(从上而下): 白色的玻璃、石头、空气
———————————奇奇怪怪的分隔线———————————
这研究还是很稚嫩,因为我完全没办法去实践我的猜测...而且研究的时间也很短(今天刚开始)。所以以后会慢慢增加内容的了希望各位能够明白structure的格式,如果有错漏/不足之处,还请指出,我会尽快修改
如果有不明白的话,也欢迎询问,我会尽力回答你们的问题
[groupid=546]Command Block Logic[/groupid]