#minecraft #map #tile #maps #viewer #save #renderer

app minedmap

从Minecraft存档数据生成可浏览的地图

6个稳定版本

2.2.0 2024年6月23日
2.1.1 2024年6月14日
2.1.0 2024年1月27日
2.0.1 2023年11月18日
2.0.0 2023年9月30日

#3游戏

每月下载量 37

MIT 协议

400KB
15K SLoC

矿图映射

  • 渲染您 Minecraft 世界的美丽地图!
  • 将它们放在Web服务器上,并在浏览器中查看!
  • 与未经修改的Minecraft Java版1.8至1.21兼容(无需安装模组!)
  • 光照层:夜晚的世界
  • 快速:在单线程操作中,在不到5分钟内为高达3GB的存档创建完整地图
  • 多线程支持:将 -j N 传递给渲染器以使用 N 个并行线程进行生成
  • 增量更新:仅重新创建已更改区域的地图瓦片
  • 通常在单线程操作中占用不到100MB的RAM(当传递 -j 时可能更高)
  • 跨平台:在Linux、Windows上运行,可能还在MacOS等其他系统上运行

Screenshot

关于

矿图映射由两个组件组成:一个从Minecraft存档生成地图瓦片的地图渲染器,以及一个基于 Leaflet 的浏览器中显示和导航地图的查看器。地图渲染器深受 MapRend 的启发,但已从头开始重新实现(最初用C++,现在用Rust)以实现最佳性能。

如何使用

从GitHub发布页面下载与您的平台匹配的二进制发布版本(或使用 cargo 从源安装),以及平台无关的查看器存档。解压查看器存档。解压的目录包含操作查看器的HTML和JavaScript,并将公开在Web服务器上。由MinedMap生成的图像数据将存储在解压的查看器的 data 子目录中。

我的世界将保存数据存储在Linux的目录~/.minecraft/saves,以及在Windows的C:\Users\<username>\AppData\Roaming\.minecraft\saves。要从名为“World”的存档游戏中生成MinedMap瓦片数据,可以使用以下命令(将第一个参数替换为您的保存数据路径;<viewer>指代您解压MinedMap查看器的目录)

minedmap ~/.minecraft/saves/World <viewer>/data

对于大型世界,第一次地图生成可能需要一些时间,但后续调用将只重建已更改的区域文件的瓦片,通常不超过一秒或两秒。这使得频繁更新地图变得可行,例如,每分钟运行MinedMap作为Cron作业。

请注意,没有网络服务器,无法打开查看器index.html,因为它无法从file:// URI加载生成的地图信息。出于测试目的,您可以使用最小化HTTP服务器,例如,如果您已安装Python,只需在查看器目录中运行以下命令

python3 -m http.server

此测试服务器非常慢,无法同时处理多个请求,因此请使用合适的网络服务器,如nginx,或将查看器与生成的地图文件一起上传到公共网络空间,以便其他人可以访问地图。

如果您将目录上传到远程网络服务器,您不需要上传<viewer>/data/processed目录,因为该目录仅用于本地,以便更快速地处理更新。

标记

Sign screenshot

MinedMap可以在地图上显示标记标记,点击时将弹出一个显示标记文本的弹出窗口。

默认情况下,禁用了标记层的生成。可以通过向MinedMap传递--sign-prefix--sign-filter选项来启用它。这些选项允许配置应显示哪些标记,并且可以多次传递以显示至少匹配一个前缀或过滤器的每个标记。

--sign-prefix将使所有文本以给定前缀开始的标记可见,例如,--sign-prefix '[Map]'将允许在Minecraft中放置以"[Map]"开头的标记以在地图上添加标记。可以(空前缀--sign-prefix '')用于使地图上的所有标记都可见。

--sign-filter可以用于基于正则表达式的更高级过滤。 --sign-filter '\[Map\]'将显示包含"[Map]"的任何地方的文本的所有标记,而--sign-filter '.'则使所有非空标记(至少包含一个字符的标记)可见。有关受支持的语法的更多信息,请参阅regex crate的文档。

所有前缀和过滤器都单独应用于正面和背面文本,但当一个匹配时,正面和背面文本都将显示在弹出窗口中。

最后,--sign-transform允许指定sed样式的替换模式来修改地图上显示的文本。如果--sign-prefix--sign-filter匹配的文本不应显示,则可以使用此功能:--sign-filter 's/\[Map\]//'将"[Map]"的每个出现替换为空字符串。

注意:在Windows上,必须使用双引号(")来表示参数,而不是单引号('),并且参数中的所有反斜杠都必须通过加倍它们来转义。这可能会使正则表达式的编写和阅读变得有些困难。

安装

Linux和Windows的地图生成器二进制构建以及包含查看器的存档可以在GitHub发行页面找到。

从源代码构建生成器需要最新的Rust工具链(1.72.0或更高版本)。以下命令可以用于构建当前的开发版本

cargo install --git 'https://github.com/neocturne/MinedMap.git'

此外,还需要CMake来构建zlib-ng库。如果您没有安装CMake,可以通过将--no-default-features传递给cargo来禁用zlib-ng功能。将使用纯Rust的zlib实现,这更易于移植,但比zlib-ng慢。

如果您正在寻找MinedMap瓦片渲染器的较旧C++实现,请查看v1.19.1标签。

依赖项

~22–35MB
~586K SLoC