我的世界java版地图结构_地图物品格式 - Minecraft Wiki,最详细的官方我的世界百科...

本文详细介绍了《我的世界》Java版的地图结构,包括地图的存储方式、ID追踪、地图文件格式,以及如何利用地图创作像素画。地图信息存储在GZip压缩的NBT文件中,每个地图对应一个独特的文件,并且有特定的颜色映射规则。文章还提到了地图在下界的渲染问题以及地图ID的更新历史。
摘要由CSDN通过智能技术生成

c773fcb9bf3c09612b907ad35ab6ecca.gif

此条目需要更新。

条目中某些信息已经不符合当前版本情况。

e5f234d482d1dd6b2d3a2ce2804a605f.png

该文章需要整理以符合样式标准。

请帮助优化文章样式来让它符合样式要求。

c5863208c5fabc0620aaa0484a289f9b.png

此特性为Java版独有。

地图不在物品中存储他们的信息,而是将其数据值对应保存的文件的地图数字(ID)。其数据放在此世界存档目录下的“data”目录下。每个地图都有它自己的与它ID相关联的文件,同时还有一个文件用于追踪最高的(=最近创建的)地图ID。

当在下界使用地图时,地图的渲染会像静止了一样,使它们完全不可读。

idcounts.dat文件包含了当前地图的最新ID。每个地图的文件名使用map_.dat的格式,是该地图的独有数字。

map_.dat格式

map_.dat文件是由GZip压缩的NBT文件。

:根标签。

data:地图信息。

scale:地图缩放(2scale 方块每像素,scale可以为0,表示地图是1:1缩放的)。预设值是3,最小值是0而最大值是4。

dimension: 0 = 主世界,-1 = 下界,1 = 末路之地,其他数值 = 该地图是静态图像。

trackingPosition:1(默认值)表示当地图在其中心坐标附近时位置箭头应被显示。0表示位置箭头永不显示。

unlimitedTracking:1(默认值)允许玩家位置指示器当玩家距地图中心远于320*(尺寸+1)格时在地图边缘以较小的点状形式呈现。设为0将使该点在上述条件下被隐去。

locked:如果地图被制图台锁定,则为1。

xCenter:地图在游戏世界里的X中心。

zCenter:地图在游戏世界里的Z中心。

banners:地图里的旗帜标记。该列表可能不存在或者是空值。

一个旗帜标记。

Color:旗帜的颜色。有效的值包括:white、orange、magenta、light_blue、yellow、lime、pink、gray、light_gray、cyan、purple、blue、brown、green、red和 black。

Name:旗帜的自定义名称,可能这个值不存在。

Pos:旗帜在世界上的位置。

X:旗帜的X坐标。

Y:旗帜的Y坐标。

Z:旗帜的Z坐标。

frames:列举了加入地图的地图标记者,可以是空的。

一个标记者。

EntityId:这个标记者的任意独一无二的值。

Rotation:标记者的旋转角,在0到360之间。

Pos:标记者在世界中的方块位置。

X:标记者的x坐标。

Y:标记者的y坐标。

Z:标记者的z坐标。

colors:颜色的宽度×高度的阵列(一个预设的128x128地图拥有16384个点)颜色可以通过以下方法存取:colorID = Colors[widthOffset + heightOffset * width],其中 (widthOffset==0, heightOffset==0) 的点是左上角的点。

DataVersion:地图创建时的版本。如果不存在,则默认为1343(Java版1.12.2)。

当这个结构载入时,颜色阵列就会转换成标准尺寸(如需要),这个结构就会以标准的高度和宽度储存。

idcounts.dat格式

这个文件追踪最新加入的地图。它被存储为原始的(未压缩的)NBT文件。

根标签。

Data

map: 最新的地图ID。

DataVersion

地图会使用一个颜色表对应颜色ID来储存颜色。

地图会根据方块的材质来为它们着色。每个材质都有一个基色,它会乘以135, 180, 220或255,再除以255来得到地图色。以下的每个基色都会与四个地图色相关联——将基色ID乘以4来得到第一个地图色ID。

ID

颜色

RGB

对应方块

1 GRASS

127, 178, 56

3 WOOL

199, 199, 199

4 FIRE

255, 0, 0

5 ICE

160, 160, 255

6 METAL

167, 167, 167

9 CLAY

164, 168, 184

黏土块、被虫蚀的方块(石头、圆石、石砖、苔石、苔石砖、裂石砖、錾制石砖)

11 STONE

112, 112, 112

12 WATER

64, 64, 255

14 QUARTZ

255, 252, 245

闪长岩、磨制闪长岩、白桦原木(侧面)、石英块(所有变种、所有台阶、所有楼梯)、海晶灯

30 GOLD

250, 238, 77

31 DIAMOND

92, 219, 213

钻石块、信标、海晶石砖(台阶、楼梯)、暗海晶石(台阶、楼梯)、潮涌核心

32 LAPIS

74, 128, 255

33 EMERALD

0, 217, 58

35 NETHER

112, 2, 0

下界岩、下界砖块(栅栏、台阶、楼梯、墙)、下界石英矿石、岩浆块、红色下界砖块(台阶、楼梯、墙)

36 TERRACOTTA_WHITE

209, 177, 161

37 TERRACOTTA_ORANGE

159, 82, 36

38 TERRACOTTA_MAGENTA

149, 87, 108

39 TERRACOTTA_LIGHT_BLUE

112, 108, 138

40 TERRACOTTA_YELLOW

186, 133, 36

41 TERRACOTTA_LIGHT_GREEN

103, 117, 53

42 TERRACOTTA_PINK

160, 77, 78

43 TERRACOTTA_GRAY

57, 41, 35

44 TERRACOTTA_LIGHT_GRAY

135, 107, 98

45 TERRACOTTA_CYAN

87, 92, 92

46 TERRACOTTA_PURPLE

122, 73, 88

47 TERRACOTTA_BLUE

76, 62, 92

48 TERRACOTTA_BROWN

76, 50, 35

49 TERRACOTTA_GREEN

76, 82, 42

50 TERRACOTTA_RED

142, 60, 46

51 TERRACOTTA_BLACK

37, 22, 16

上面的每个基色都有4个相关联的地图色。该转换将用红、绿和蓝分别乘上一个值再除以255,最后取整到一个整数。从13w42b开始,第四个基色变体将乘上135,得到一个较暗的颜色集合而不仅仅是第二个基色变体的副本。

地图色ID

R、G、B所乘的数

= 实际乘数

基色ID×4 + 0

180

0.71

基色ID×4 + 1

220

0.86

基色ID×4 + 2

255(相同的颜色)

1

基色ID×4 + 3

135

0.53

47b3a2f76b74a6a0c062069aadcf8f20.png

每个颜色的不同阴影,不包括水

f7bc17f344b76a5653c73f0f0948411d.png

1.12中每个地图颜色的不同阴影,不包括水

2ba534a14e61f3e5327df4892870809d.png

Redstonehelper在生存中使用了这种阶梯型的方法。

人们会用地图来创作像素画。默认的地图大小为128×128并会读取每一个方块为一种特定的颜色。通过以特定的排列放置方块,为创作像素画图像提供了可能。

创作地图像素画有两种方法:平面型和阶梯型。平面型方法涉及在一个平面上放置像素图像,最后创建出一个地板。平面型方法是两种方法中较简单的一种,但只提供了51色的调色板。而阶梯型方法提供了153色,但使用起来更加复杂了。在阶梯型方法中,方块需要被放置不同的高度来获得特定的颜色变化。一个方块的颜色会在比北边方块低的位置时变暗,而在比北边方块高的位置时变亮。

使用平面型方法时,可以使用以上列表中每个颜色组的第二个阴影。对于阶梯型方法,可以使用以上颜色组的前三个阴影。只有使用外部工具才能获得第四个阴影。

31190e52c4cf7dc9031080c7b34f0eed.png

该页面仍需完善。

你可以帮助我们扩充关于该主题的更多信息。

原因:9

以下是一些用来处理地图的代码示例。

库名

语言

代码链接

MCModify

Java

minecraftmap

Python

mcmapimg

Python

af13596c169ab688cf0c8acbacfbd571.gif

此段落需要更新。

段落中某些信息已经不符合当前版本情况。

?当Notch第一次加入地图时,他没有使用NBT格式。

?加入了地图。

地图ID被限制为短整型的大小(32,768)。

?加入了下界颜色 "NETHER" (35),基色数量提升到36。

第四种颜色的乘数从 220 (0.86) 改为 135 (0.53)。

?基色数量提升到52。

地图ID不再使用短整型(32,767)而改用了整型(2,147,483,647),因为它们不再基于物品的损害值。

idcounts.dat现在使用整型(2,147,483,647)而不是短整型。

加入了DataVersion来保存map_.dat。(idcounts.dat仍然没有DataVersion)

加入了locked来保存map_.dat。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值