Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
注册
Advertisement
Disambig gray  关于基岩版的类似于区块格式的格式文件,请见“基岩版世界格式”。关于实体的储存格式,请见“实体格式”。

区块(Chunks)以16×384×16立方块为单位存储地形和实体信息。区块也会同时储存预先计算好的光照、高度图数据及其他元数据信息,以加快游戏处理。

NBT结构[]

区块是储存在Anvil文件中的各种标签,这些Anvil文件以r.x.z.mca的形式命名。区块使用NBT格式储存,遵循以下结构组成。

  • 根标签。
    •  below_zero_retrogen:用于在升级为1.18的世界时,原区块负值高度上重新生成方块的数据。可能不存在。
      •  missing_bedrock:每个二进制位代表了此位置上是否缺失基岩,用于决定是否重新生成此位置下的方块。一共256个二进制位,即4个long整数,位置编码从(0,0)开始横向扫描到(15,15)结束。
      •  target_status:重新生成方块时区块的目标状态,可选值与 Status相同,但不包含empty
    •  blending_data:用于新旧区块平滑过渡的混合数据信息。可能不存在。
      •  heights:混合数据中元胞的高度值,共16个数值。
        • :一个高度值。
      •  max_section:混合数据中最高子区块的索引。
      •  min_section:混合数据中最低子区块的索引。
    •  block_entities:储存区块内所有方块实体信息。
    •  block_ticks:区块中的方块计划刻列表。
    •  CarvingMasks:区块雕刻时的标记,当区块生成完毕后此项会被删除。
      •  AIR:每个二进制位指示洞穴是否在特定位置生成,位置使用YZX编码
      •  LIQUID:每个二进制位指示水下洞穴是否在特定位置生成,位置使用YZX编码
    •  DataVersion数据版本
    •  entities:区块生成时的初始实体信息,当区块生成完毕后此项会被删除。
    •  fluid_ticks:区块中的流体计划刻列表。
    •  HeightMaps:区块的高度图信息,存储方式见高度图格式
      •  MOTION_BLOCKING:最高的能阻挡移动或含有液体的方块。
      •  MOTION_BLOCKING_NO_LEAVES:最高的阻挡移动、含有液体或在minecraft:leaves标签里的方块。
      •  OCEAN_FLOOR:最高的既不是空气也不包含液体的方块。
      •  OCEAN_FLOOR_WG:最高的既不是空气也不包含液体的方块。此值用于世界生成,生成完毕后此值被删除。
      •  WORLD_SURFACE:最高的非空气方块。
      •  WORLD_SURFACE_WG:最高的非空气方块。此值用于世界生成,生成完毕后此值被删除。
    •  InhabitedTime:所有玩家在此区块停留的总刻数,如果有多个玩家在这个区块停留过则分别计时并相加。用于区域难度的计算,当此值大于3600000游戏刻(150游戏日)时区域难度达到最大值。
    •  isLightOn:表示区块是否已经正常完成光照计算。
    •  LastUpdate:此区块最后一次保存时的游戏时间。
    •  PostProcessing:存储区块生成完毕后需要进行更新的位置。
      • :一个子区块内需要更新的位置。保存顺序为从最低的子区块开始到最高子区块结束。
        • :一个需要更新的方块的位置,按照ZYX编码存储。
    •  sections:区块中所有子区块的信息。
      • :一个子区块的信息。
        •  biome:子区块内的生物群系信息。
          •  data:记录子区块内64个生物群系,编码格式见方块存储格式。如果子区块内只存在一种生物群系,则此项不存在。
          •  palette:生物群系的集合,用于记录int与生物群系的映射。
            • :生物群系的命名空间ID。
        •  block_states:子区块内的方块状态信息。
          •  data:记录子区块内4096个方块状态,编码格式见方块存储格式。如果子区块内只存在一个方块状态,则此项不存在。
          •  palette:方块状态的集合,用于记录int与方块状态的映射。
            • :一个方块状态。
              • 方块状态
        •  BlockLight:存储子区块内4096个方块光照亮度信息,含有2048个byte,编码格式见亮度格式。可能不存在。
        •  SkyLight:存储子区块内4096个天空光照亮度信息,含有2048个byte,编码格式见亮度格式。可能不存在。
        •  Y:子区块的索引。
    •  Status:定义了该区块当前在世界生成中的状态。是这些值的其中之一:empty(尚未进行区块生成)、structure_starts(生成结构范围)、structure_references(生成结构标记)、biomes(填充生物群系)、noise(填充初始噪声地形)、surface(应用地表规则)、carvers(进行洞穴雕刻)、features(生成地物)、initialize_light(初始化光照计算)、light(计算光照)、spawn(生成初始实体)和full(区块生成完毕)。
    •  structures:此区块中的结构数据。
      •  References:包含 starts中结构的区块坐标。
        •  <结构的命名空间ID>:包含此结构的区块坐标。每一个long都是一个区块位置,其中X坐标储存在低32位,Z坐标储存在高32位。
      •  starts:按类型储存的还没有生成完毕的结构,完全生成好的结构会被从这个标签中移除。
        •  <结构的命名空间ID>:一项结构和它生成时需要的数据。
          •  Children:组成此结构的、还未被生成的结构片段。
            • :结构片段数据。如果此片段已经生成,则被删除。
          •  ChunkX:结构的起始区块X坐标。如果结构已经生成则无此标签。
          •  ChunkZ:结构的起始区块Z坐标。如果结构已经生成则无此标签。
          •  id:结构的命名空间ID。如果结构已经生成,则为INVALID
          •  references:与此结构关联的标记信息。
    •  UpgradeData:区块升级数据。可能不存在。
      •  Indices:需要更新升级的位置,包含了一个区块中所有子区块的信息。
        •  <子区块序号>:子区块中需要更新升级的方块位置信息。每个int都代表了一个位置,位置使用YZX编码
      •  neighbor_block_ticks:升级数据中保存的将进行的方块计划刻。
      •  neighbor_fluid_ticks:升级数据中保存的将进行的流体计划刻。
      •  Sides:其中的二进制位表示是否对某一方向上的方块进行更新升级,从低位到高位分别表示北、东北、东、东南、南、西南、西、西北。
    •  xPos:此区块的X坐标。
    •  yPos:此区块中最低子区块的索引。
    •  zPos:此区块的Z坐标。

方块位置编码[]

在Anvil文件格式中,区块被进一步划分为“子区块”。子区块是一个16x16x16大小的区域,含有4096个方块。方块在子区块中的位置被按照YZX来排序以此达到压缩的目的。

坐标系如下:

  • X 向东增加,向西减少;
  • Y 向上增加,向下减少;
  • Z 向南增加,向北减少。

下面的代码给出了方块的子区块位置与其YZX编码的转换关系:

public static int toYZX(int x, int y, int z) {
	return y << 8 | z << 4 | x;
}

方块存储格式[]

在子区块中每个方块都有它们对应的方块状态。在扁平化后,方块状态与数字形式ID被拆离,也就不能像之前直接使用 Blocks Add数组进行直接的方块状态ID表示。因此,在扁平化后,子区块保存方块状态使用了“调色板”用于保存方块状态与数字的映射,并将数字按照YZX编码按顺序保存到 data中。

“调色板”,即 palette标签,使用元素的索引作为对应方块状态的ID。这个ID仅在本子区块有效,在其他子区块可能代表其它的方块状态。调色板内的元素数量决定了最终ID的长度,影响最终储存方块状态的 data标签的长度。如果调色板内的方块状态只有一个,代表整个子区块内只包含一种方块状态,此时 data标签不存在,用来节省空间。如果调色板内方块状态小于等于16个,那么编码长度为4比特,每个long中最多储存16个方块状态;如果调色板内方块状态大于16个,那么编码长度为比特,每个long中最多储存个方块状态。方块状态写入到 data标签时,按照YZX编码逐一写入,尽量填满每一个long,但是编码不能横跨两个数字进行储存。因此,如果调色板中方块状态的数量小于等于16,那么 data标签的长度就是256;如果数量为17~32, data标签的长度就是342,以此类推。

和方块状态类似,生物群系单元也使用类似的方式进行储存。生物群系单元与方块状态存储的区别在于,它的编码长度统一为比特,而其它部分都是相同的流程。

亮度格式[]

子区块内的亮度数据也保存在字节数组中。因为亮度为0~15,所以只需要4比特就能记录一个方块的亮度,每个字节都能存储两个方块的亮度。在写入亮度数据时,每个方块的亮度都按照YZX编码的顺序逐一写入,组成一个2048长度的字节数组。下方的代码给出了从子区块方块位置获取亮度的方法:

public static int getLight(int x, int y, int z) {
	int yzx = toYZX(x, y, z);
    return (data[yzx >> 1] >> (4 * (yzx & 1))) & 0xF;
}

高度图格式[]

高度图存储类似方块状态存储,但是它只保存水平方向上16x16的256个高度信息。高度图中高度是以世界最低高度极限开始计算的,所以不会有负值,要将高度正确的进行编码,需要比特,其中h代表世界的总高度。对于主世界来说,总高度是384,需要使用9比特,每个long中可以保存7个高度;对于下界和末地,总高度是256,需要使用8比特,每个long中可以保存8个高度。类似于方块状态存储,保存高度是尽量放在一个long中,但是不能跨数字保存一个高度,因此主世界的高度表数组长度为37,下界和末地的高度表数组长度为32。高度存储从区块水平坐标(0,0)开始,横向扫描一整行方块然后开始扫描下一行,最终到(15,15)结束。

计划刻格式[]

计划刻代表方块更新,它的作用是用于解释在区块保存前的事情。事实上它是用于在重新加载世界时再次更新它们(包括红石机械的更新,水、熔岩的流动,沙砾检查坠落等等)。但是计划刻不会用于像检查树叶腐烂,农作物生长等需要随机刻来更新的方块,因为它们的更新不需要随着区块的载入而更新。对于地图制作者来说,计划刻可以用于在加载区块的同时更新方块。

  • 一个计划刻
    •  i:方块的命名空间ID,用于激活正确的方块更新步骤。
    •  p:计划刻的处理优先级。如果多个计划刻被安排入同一刻中,那么p值较小的计划刻会被优先处理。一共有7个优先级:-3(最高优先级,只用于红石比较器和红石中继器)、-2(极高优先级,只用于红石比较器和红石中继器)、-1(高优先级,只用于红石比较器和红石中继器)、0(普通优先级)、1(低优先级,没有任何方块使用)、2(极低优先级,没有任何方块使用)、3(最低优先级,没有任何方块使用)。
    •  t:距离此计划刻将要执行的倒计时。
    •  x:X坐标。
    •  y:Y坐标。
    •  z:Z坐标。

方块实体格式[]

方块实体是对方块状态有穷集合的补充。所有方块实体都有下面的标签:

  • 一个方块实体
    •  id:方块实体ID。
    •  keepPacked:表示此方块实体是否已经无效,关系到区块将如何保存这个方块实体。此项不能通过/data获取。
    •  x:当前方块实体的X坐标。
    •  y:当前方块实体的Y坐标。
    •  z:当前方块实体的Z坐标。

下面为Java版中所有的方块实体。

方块实体ID 名称
banner 旗帜
barrel 木桶
beacon 信标
bed
beehive 蜂巢蜂箱
bell
blast_furnace 高炉
brewing_stand 酿造台
brushable_block 可疑的方块
calibrated_sculk_sensor 校频幽匿感测体
campfire 营火
chest 箱子
chiseled_bookshelf 雕纹书架
command_block 命令方块
comparator 红石比较器
conduit 潮涌核心
crafter[新增:JE 1.20.3] 合成器
daylight_detector 阳光探测器
decorated_pot 饰纹陶罐
dispenser 发射器
dropper 投掷器
enchanting_table 附魔台
end_gateway 末地折跃门
end_portal 末地传送门
ender_chest 末影箱
furnace 熔炉
hanging_sign 悬挂式告示牌
hopper 漏斗
jigsaw 拼图方块
jukebox 唱片机
lectern 讲台
mob_spawner 刷怪笼
piston 移动的活塞
sculk_catalyst 幽匿催发体
sculk_sensor 幽匿感测体
sculk_shrieker 幽匿尖啸体
shulker_box 潜影盒
sign 告示牌
skull 生物头颅
smoker 烟熏炉
structure_block 结构方块
trapped_chest 陷阱箱

结构片段格式[]

结构片段是区块生成时进行结构放置的单元。对于不同的结构,有不同的结构片段数据进行不同的结构放置。所有结构片段数据都有下面的标签:

  • 结构片段数据根标签。
    •  BB:结构片段的范围。此数组一共有6个int,分别代表了最小X、Y、Z坐标和最大X、Y、Z坐标。
    •  GD:生成深度,用于正确生成结构片段的位置与方向。
    •  id:结构片段的命名空间ID。
    •  O:结构片段的方向,从0到3分别对应南西北东。

目前Minecraft中有56种结构片段,其中24种没有额外的标签,它们分别是:

其余结构片段的额外标签在下文列出。

minecraft:mscorridor[]

此结构片段表示废弃矿井中的铁轨区域刷怪笼区域Mine Shaft Corridor) 。

  • 结构片段数据根标签。
    •  hps:表示此走廊是否有洞穴蜘蛛刷怪笼。
    •  hr:表示此走廊是否有铁轨。
    •  Num:走廊长度。
    •  MST:废弃矿井的类型,0代表普通类型,1代表恶地类型。
    •  sc:表示此走廊是否有蜘蛛网。

minecraft:mscrossing[]

此结构片段表示废弃矿井中的交叉区域Mine Shaft Crossing) 。

  • 结构片段数据根标签。
    •  D:此交叉区域的建构时的方向,从0到3分别对应南西北东,防止重复创建一块结构片段。
    •  MST:废弃矿井的类型,0代表普通类型,1代表恶地类型。
    •  tf:表示此交叉区域是否有两层。

minecraft:msroom[]

此结构片段表示废弃矿井中的房间区域(Mine Shaft Room) 。

  • 结构片段数据根标签。
    •  Entrances:房间的入口。
      • :房间入口的范围。此数组一共有6个int,分别代表了最小X、Y、Z坐标和最大X、Y、Z坐标。
    •  MST:废弃矿井的类型,0代表普通类型,1代表恶地类型。

minecraft:msstairs[]

此结构片段表示废弃矿井中的楼梯区域(Mine Shaft Stairs) 。

  • 结构片段数据根标签。
    •  MST:废弃矿井的类型,0代表普通类型,1代表恶地类型。

minecraft:nebef[]

此结构片段表示下界要塞桥梁的尽头(Nether Fortress Bridge End Filler)。

  • 结构片段数据根标签。
    •  Seed:生成结构片段时使用的种子。

minecraft:nesclt和minecraft:nescrt[]

此结构片段表示下界要塞中的弯走廊Nether Fortress Castle Small Corridor Left/Right Turn)。

  • 结构片段数据根标签。
    •  Chest:表示生成结构时是否添加战利品箱。

minecraft:nemt[]

此结构片段表示下界要塞中的瞭望台Nether Fortress Monster Throne)。

  • 结构片段数据根标签。
    •  Mob:表示是否已经放置了烈焰人刷怪笼。

minecraft:shcc[]

此结构片段表示要塞中含战利品祭坛的走廊(StrongHold Chest Corridor)。

  • 结构片段数据根标签。
    •  Chest:表示是否已经放置了战利品箱。
    •  EntryDoor:此走廊入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。

minecraft:shfc[]

此结构片段表示要塞中的走廊(StrongHold Filler Corridor)。

  • 结构片段数据根标签。
    •  EntryDoor:此走廊入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Steps:走廊长度。

minecraft:sh5c[]

此结构片段表示要塞中的五通道路口(StrongHold Five Crossing)。

  • 结构片段数据根标签。
    •  EntryDoor:此走廊入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  leftHigh:表示五通道路口中是否在下面向下的楼梯中有一个出口。
    •  leftLow:表示五通道路口中是否在下面向上的楼梯中有一个出口。
    •  rightHigh:表示五通道路口中是否在上面向下的楼梯中有一个出口。
    •  rightLow:表示五通道路口中是否在上面向上的楼梯中有一个出口。

minecraft:shlt和minecraft:shrt[]

此结构片段表示要塞中的转角(StrongHold Left/Right Turn)。

  • 结构片段数据根标签。
    •  EntryDoor:此走廊入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。

minecraft:shli[]

此结构片段表示要塞中的图书馆StrongHold Library)。

  • 结构片段数据根标签。
    •  EntryDoor:此图书馆入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Tall:图书馆是否有通往上方的楼梯。

minecraft:shpr[]

此结构片段表示要塞中的传送门房间StrongHold Portal Room)。

  • 结构片段数据根标签。
    •  EntryDoor:此图书馆入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Mob:表示是否已经放置了蠹虫刷怪笼。

minecraft:shph[]

此结构片段表示要塞中的牢房StrongHold Prison Hall)。

  • 结构片段数据根标签。
    •  EntryDoor:此牢房入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。

minecraft:shrc[]

此结构片段表示要塞中的交叉房间(StrongHold Room Crossing)。

  • 结构片段数据根标签。
    •  EntryDoor:此房间入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Type:表示房间的类型。0-2分别代表石柱房喷泉房和楼梯房;3、4代表空房间

minecraft:shsd和minecraft:shstart[]

此结构片段表示要塞中的旋转楼梯StrongHold Stairs Down/StrongHold Start)。

  • 结构片段数据根标签。
    •  EntryDoor:此楼梯入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Source:表示此旋转楼梯是否为要塞的起点。

minecraft:shs[]

此结构片段表示要塞中的直走廊(StrongHold Straight)。

  • 结构片段数据根标签。
    •  EntryDoor:此走廊入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。
    •  Left:表示在走廊左侧是否有一个开口。
    •  Right:表示在走廊右侧是否有一个开口。

minecraft:shssd[]

此结构片段表示要塞中的直楼梯StrongHold Straight Stairs Down)。

  • 结构片段数据根标签。
    •  EntryDoor:此楼梯入口门的类型。可以为OPENING(开放入口)、WOOD_DOOR(木门)、GRATES(铁栅栏)和IRON_DOOR(铁门)。

minecraft:tejp[]

此结构片段表示丛林神庙Jungle Pyramid Piece)。

  • 结构片段数据根标签。
    •  placedTrap1:表示是否已经放置走廊发射器发射箭的陷阱。
    •  placedTrap2:表示是否已经放置箱子发射器发射箭的陷阱。
    •  placedMainChest:表示是否已经放置主箱子。
    •  placedHiddenChest:表示是否已经放置隐藏箱子。

minecraft:orp[]

此结构片段表示海底废墟Ocean Ruin)。

  • 结构片段数据根标签。
    •  BiomeType:此遗迹所处的海洋的温度。可以为WARM(温暖海域)和COLD(寒冷海域)。
    •  Integrity:此结构的完整度。
    •  IsLarge:表示此结构是否为大型废墟。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:iglu[]

此结构片段表示雪屋Igloo)。

  • 结构片段数据根标签。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:rupo[]

此结构片段表示废弃传送门Ruined Potral)。

  • 结构片段数据根标签。
    •  Mirror:此结构放置时的采取的对称方式,可以为NONE(不进行镜像对称)、LEFT_RIGHT(左右镜像对称)、FRONT_BACK(前后镜像对称)。
    •  Properties:废弃传送门的放置属性。
      •  air_pocket:此废弃传送门是否含有空洞。
      •  cold:表示此废弃传送门是否已经冷却,决定放置熔岩、岩浆块和下界岩。
      •  mossiness:废弃传送门的废弃程度,值越大结构中方块的形式越破碎。
      •  overgrown:表示此废弃传送门是否生成树叶。
      •  replace_with_blackstone:表示此废弃传送门中的一部分方块是否替换为黑石。
      •  vines:表示此废弃传送门是否生成藤蔓。
    •  Rotation:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。
    •  VerticalPlacement:废弃传送门的垂直放置模式,可以为on_land_surface(地表)、partly_buried(部分掩埋)、on_ocean_floor(海床上)、in_mountain(山中)、underground(地下)和in_nether(下界)。

minecraft:tesh[]

此结构片段表示沼泽小屋Swampland Hut)。

  • 结构片段数据根标签。
    •  Cat:表示是否已经在这个沼泽小屋里生成黑猫。
    •  Depth:结构的深度。
    •  Height:结构的高度。
    •  HPos:为将结构放置在地面上而移动到的Y高度。若该结构未被移动则为-1。
    •  Width:结构的宽度。
    •  Witch:表示是否已经在这个沼泽小屋里生成女巫。

minecraft:tedp[]

此结构片段表示沙漠神殿Desert Pyrmaid Piece)。

  • 结构片段数据根标签。
    •  Depth:结构的深度。
    •  hasPlacedChest0:表示是否放置了南方的箱子。
    •  hasPlacedChest1:表示是否放置了西方的箱子。
    •  hasPlacedChest2:表示是否放置了北方的箱子。
    •  hasPlacedChest3:表示是否放置了东方的箱子。
    •  Height:结构的高度。
    •  HPos:为将结构放置在地面上而移动到的Y高度。若该结构未被移动则为-1。
    •  Width:结构的宽度。

minecraft:ecp[]

此结构片段表示末地城End City Piece)。

  • 结构片段数据根标签。
    •  OW:表示在结构放置时是否只忽略结构内的结构方块。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:wmp[]

此结构片段表示林地府邸Woodland Mansion Piece)。

  • 结构片段数据根标签。
    •  Mi:此结构放置时的采取的对称方式,可以为NONE(不进行镜像对称)、LEFT_RIGHT(左右镜像对称)、FRONT_BACK(前后镜像对称)。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:shipwreck[]

此结构片段表示沉船Shipwreck Piece)。

  • 结构片段数据根标签。
    •  isBeached:表示此沉船是否搁浅。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:nefos[]

此结构片段表示下界化石Nether Fossil)。

  • 结构片段数据根标签。
    •  Rot:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。
    •  Template:此结构使用的结构模板的命名空间ID。
    •  TPX:结构模板的X坐标起始点。
    •  TPY:结构模板的Y坐标起始点。
    •  TPZ:结构模板的Z坐标起始点。

minecraft:jigsaw[]

此结构片段表示使用拼图的结构。

  • 结构片段数据根标签。
    •  ground_level_delta:为将结构放置在地面上而移动到的Y高度。
    •  junctions:连接点列表。
    •  pool_element:结构池的元素信息。
    •  PosX:结构的X坐标起始点。
    •  PosY:结构的Y坐标起始点。
    •  PosZ:结构的Z坐标起始点。
    •  rotation:此结构放置时的旋转角度,可以为NONE(不旋转)、CLOCKWISE_90(顺时针旋转90度)、CLOCKWISE_180(旋转180度)、COUNTERCLOCKWISE_90(逆时针旋转90度)。

历史[]

区块在Infdev中首次引入。在Beta 1.3中加入区域文件格式之前,区块都是独立存储在以Base36编码的区块位置为文件名的.dat文件里,这种格式是Alpha文件格式。区域文件格式更改了这种储存方式,它把一组32×32区块存储在以Base10编码的坐标命名的.mcr文件里,以减少Minecraft一次处理文件的数量的方式来减少硬盘占用。区域文件格式的继承者便是现在的格式——Anvil文件格式,它只修改区块格式。区域文件技术仍然在使用,但其文件扩展名被改成了.mca。

区域文件格式到Anvil格式的主要修改是把区块拆成子区块。每个区块被分成若干个16×16×16方块组成的子区块以便使完全空的区域不会被保存。后者也已做好了支持0-4095的方块ID的准备,而前者支持的ID为0-255。然而,Minecraft没有为以物品形式存在的方块做好完全的准备,在256-4095中的许多ID都已被物品占用。直到扁平化后,方块与数字ID拆离,从此不再因为ID而使区块保存出现问题。

Java版
1.3.112w21aMobSpawner中移除了MaxExperienceRemainingExperienceExperienceRegenTickExperienceRegenRateExperienceRegenAmount
1.4.212w34a加入实体WitherBoss
1.513w02a加入实体MinecartTNT
Minecart被弃用。
13w03a加入实体MinecartHopper
13w06a加入实体MinecartSpawner
1.6.113w16a加入实体EntityHorse
13w21aEntityHorse中移除了ArmorType
EntityHorse中移除了Saddle
1.6.1-preEntityHorse重新加入了Saddle
1.7.213w39a加入实体MinecartCommandBlock
1.814w02a为箱子加入了Lock
现在指定了NBT数据时不再使用物品ID。
FallingSand加入了Block,其使用了字母ID格式。
14w06a为所有实体加入了ShowParticles
为所有物品实体加入了PickupDelay
Age设置为-32768会使物品永不过期。
为所有生物移除了AttackTime
14w10aVillager加入了rewardExp
为所有可以饲养的生物加入了OwnerUUID
Skull加入了Owner
对物品展示框和画进行了更改:加入了FacingTileXTileYTileZ现在表示物品里面的方块的坐标而不是其放置的物品,同时弃用了DirectionDir
14w11a加入实体Endermite
Enderman加入了EndermiteCount
14w21a现在所有实体都有了CustomNameCustomNameVisible
14w25a加入实体Guardian
为告示牌加入了Text1Text2Text3Text4。告示牌现在不再有字符数量限制(16个),现在其限制取决于字符的宽度。
14w27a加入实体Rabbit。 为命令方块告示牌加入了CommandStats
14w28aEnderman移除了EndermiteCount
14w30a为所有实体加入了Silent
14w32a为所有生物加入了NoAI
加入实体ArmorStand
14w32cArmorStand加入了NoBasePlate
1.915w31aLiving加入了标签HandItemsArmorItemsHandDropChancesArmorDropChances。它们取代了DropChancesEquipment标签。
ArmorStand加入了HandItemsArmorItems
Entity加入了Glowing
LivingBase加入了Team
EnderDragon加入了DragonPhase
加入实体Shulker,是SnowMan的子标签。
加入实体ShulkerBullet,是Entity的子标签。
加入实体DragonFireball,其扩展了FireballBase,但没有独有标签。
加入实体TippedArrowSpectralArrow,是Arrow的子标签。
加入方块EndGatewayTileEntity
加入方块Structure,是TileEntity的子标签。
加入物品标签Potion,是tag的子标签。
15w32aTagsDataVersion标签现在可应用于实体上。
FusePrimedTnt实体的标签类型从“Byte”改为“Short”。
15w32c引入了实体拥有标签的数量限制(1024个标签)。在试图超越此限制时会显示错误:“不能向实体加入超过1024个标签”。
15w33a加入实体AreaEffectCloud,其是Entity的子标签。
EndGateway加入ExactTeleport并且重命名LifeAge
ThrownPotion加入了Linger
Entity移除了DataVersion。该标签现在只适用于Player以及LivingBase的子标签。
Entity移除了UUID
LivingBase中的HealF现已弃用。
LivingBase中的LivingBase类型从“Short”变为“Float”。
ArmorStandLiving实体中移除了,该标签的功能被早些时候加入的HandItemsArmorItems替代。
15w33cEnderCrystal加入了BeamTarget
15w34a命令方块Control方块实体加入了poweredconditional字节标签。
FireballBase加入了lifepower
MobSpawner中的SpawnData加入了id
音符盒加入poweredMusic方块实体。
15w35aZombie加入了VillagerProfession
15w37aMinecartHopper加入了Enabled
15w38aEntityHorse加入了SkeletonTrapSkeletonTrapTime
15w41a所有实体中的RidingPassengers替代。
向所有骑乘者加入了RootVehicle
Boat加入了Type
15w42aCauldron(酿造台)加入了Fuel
15w43aChestMinecartMinecartHopper加入了LootTableLootTableSeed
向所有生物加入了DeathLootTableDeathLootTableSeed
向所有火球(FireballBase)加入了lifepower
15w44aEnderCrystal加入了ShowBottom
15w44bArrow加入了PotionCustomPotionEffects
AreaEffectCloud加入了Potion
15w45aThrownPotion处移除了Linger。现在储存的物品的ID包含minecraft:lingering_potion,药水会滞留。
ThrownPotion现在会渲染其物品形式,即使那个物品不是药水。
15w46aRabbitMoreCarrotTicks现在会在兔子吃一个胡萝卜时设置为40,但该标签目前未被使用。
15w47aBeacon加入了PaymentItem
15w49aBeacon中移除了PaymentItem
为了使告示牌接受文字,所有4个标签(“Text 1”、“Text 2”、“Text 3”和“Text 4”)都必须存在。
15w51bArmorStandDisabledSlots的原始值会自然更改。
1.1016w20a加入实体 PolarBear
Zombie加入了ZombieType,并且重命名VillagerProfessionIsVillager。值若为6则表示其是尸壳僵尸。
一个值为2的SkeletonType 指向单独的骷髅。
NoGravity扩展到所有的实体。
Structure加入poweredshowboundingboxshowair
16w21a加入FallFlying到怪物和武器选项
Structure加入integrityseed
1.10-pre1AreaEffectCloud加入ParticleParam1ParticleParam2
1.1116w32a马按它们各自的类型被分成如下实体ID:horsedonkeymuleskeleton_horse以及zombie_horse 。从horse中移除了TypeHasReproducedChestedHorseItems 标签已经仅仅适用于muledonkey、并且SkeletonTrapSkeletonTrapTime 也只适用于skeleton_horse
骷髅被分成了如下实体ID: skeletonstray以及wither_skeleton。从骷髅中删除了所有的SkeletonType标签。
僵尸被分成了如下实体IDzombiezombie_villager以及husk。从僵尸类型中移除了所有的ZombieType标签、ConversionTime标签和Profession标签现只适用于zombie_villager
保卫者被分为了如下的实体IDguardianelder_guardian。从guardian中移除了Elder
没有被使用的游戏保存IDMobMonster被移除。
Pumpkin字节标签被加入到snowman
16w35abanner加入了CustomName
16w39a加入例如llamallama_spitvindication_illagervexevocation_fangsevocation_illager
shulker加入了Color
为物品加入了LocNameCustomPotionColor以及ColorMap
16w40avindication_illager加入了Johnny
从火球基类(恶魂火球、烈焰人火球(火焰弹)、末影龙火球和凋灵之首)中删除了xTileyTilezTileinTileinGround
16w41a标签llama_spit已经在游戏保存实体中可用,
16w42a加入 critarrow
16w43a加入 OwnerUUIDLeastOwnerUUIDMostevocation_fangs
16w44a从鱼钩实体中删除了标签:xTileyTilezTileinTileinGround
1.11-pre1改变ench标签使它至少具有一个TAG_compound 。
1.1217w13a加入了实体ParrotShoulderEntityLeft/ShoulderEntityRightseenCreditsrecipeBookRecipes
17w14a为成为了复合标签的recipeBook加入了isFilteringCraftableisGuiOpenrecipes
为实体Zombie加入了ConversionPlayerLeastConversionPlayerMost
17w16a改进了命令中的NBT解析。
17w17arecipeBookUpdateLastExecutionLastExecution加入了toBeDisplayed
17w17b为可繁殖的实体加入了LoveCauseLeastLoveCauseMost
1.1317w47a物品中的damage标签被移除,工具和盔甲现在使用Damage标签,地图使用map标签,二者类型都是tag
末影人的carriedcarriedData标签被并入到carriedBlockState标签中。
箭的inTileinData标签被并入到inBlockState标签中。
矿车的DisplayTileDisplayData标签被并入到DisplayState标签中。
掉落的方块的BlockData标签被并入到BlockState标签中。
移动的活塞的BlockIdBlockData标签被并入到blockState标签中。
移除了音符盒和花盆方块实体。
陷阱箱现在有了它们自己的方块实体trapped_chest
从旗帜中移除了Base
从生物头颅中移除了Rot
17w47a从唱片机中移除了Record
17w47b陷阱箱不再拥有它们自己的方块实体,转而再次使用chest
18w01aThrowerOwner的类型从strings已被修改为有2个long类型的LM标签的复合标签。
18w02a由钓鱼竿创建的浮漂现在有了其实体IDfishing_bobber
画的ID已被小写化、命名空间化。
18w07a加入了turtletridentphantom实体。
turtle加入了HomePosXHomePosYHomePosZTravelPosXTravelPosYTravelPosZHasEgg
phantom加入了AXAYAZSize
18w15a加入了dolphin实体。
18w19apuffer_fish重命名为pufferfish
18w20acod_mob重命名为cod
salmon_mob重命名为salmon
18w21adolphin加入了TreasurePosXTreasurePosYTreasurePosZGotFishCanFindTreasure
ench现已被重命名为Enchantments
Enchantments不再接受数字ID,它现在接受字母ID。
pre5xp_orb重命名为experience_orb
xp_bottle重命名为experience_bottle
eye_of_ender_signal重命名为eye_of_ender
ender_crystal重命名为end_crystal
fireworks_rocket重命名为firework_rocket
commandblock_minecart重命名为command_block_minecart
villager_golem重命名为iron_golem
evocation_fangs重命名为evoker_fangs
evocation_illager重命名为evoker
vindication_illager重命名为vindicator
pre5illusion_illager重命名为illusioner
1.1418w43a加入了illager_beastpandapillager实体。
18w45a移除了LIGHT_BLOCKING高度图。
1.1519w36a每个区块中 Level标签中的 Biomes数组现在包含1024个整数而不是256个,允许不同高度上的生物群系有不同的值。
1.1821w37a现在生物群系数据由子区块保存, Biomes被删除。
21w39a CarvingMasks中的 AIR LIQUID改用
21w43a所有的标签都从 Level标签中提取出来。
 ToBeTicked TileTicks合并为 block_ticks
 LiquidsToBeTicked LiquidTicks合并为 fluid_ticks
 Entities重命名为 entities
 Sections重命名为 sections
 Starts重命名为 starts
 Structures重命名为 structures
 TileEntities重命名为 block_entities
加入 yPos below_zero_retrogen blending_data标签。
1.20.223w32a不再使用数值来存储世界中的状态效果
更改了状态效果实例中的字段。
更改了方块实体beacon的NBT格式。

语言

Advertisement