#minecraft #map #region #nbt #maps #tile #save

minedmap-nbt

MinedMap 处理 Minecraft NBT 数据和区域文件

2 个版本

0.1.1 2024年1月7日
0.1.0 2023年9月30日

#23 in #nbt


用于 minedmap

MIT 许可证

24KB
299 行代码(不含注释)

MinedMap

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

Screenshot

如何使用

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

查看器期望在名为 data 的目录中找到地图数据。要生成新地图,请在查看器目录内创建此空目录。接下来,要生成地图文件,请在命令行中运行 MinedMap,并传递源和目标路径

minedmap /path/to/save/game /path/to/viewer/data

保存游戏存储在 Minecraft 主目录中的 saves 内(Linux 上为 ~/.minecraft,Windows 上为 C:\Users\\AppData\Roaming\.minecraft)的一个以您的世界命名的子目录中。

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

请注意,在没有网络服务器的情况下无法打开查看器 index.html,因为它无法从 file:// URIs 加载生成的地图信息。为了测试目的,您可以使用一个最小的 HTTP 服务器,例如(如果您已安装 Python)

python3 -m http.server

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

安装

从源代码构建 MinedMap 地图生成器需要最新的 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 标签。

依赖项

~1.7–2.8MB
~54K SLoC