4个版本
0.1.3 | 2024年6月23日 |
---|---|
0.1.2 | 2024年1月7日 |
0.1.1 | 2023年11月18日 |
0.1.0 | 2023年9月30日 |
#430 在 游戏
在 2 crates 中使用
14KB
155 行
MinedMap
- 渲染你的Minecraft世界的美丽地图!
- 将它们放在web服务器上,并在浏览器中查看!
- 与未经修改的Minecraft Java Edition 1.8至1.21版本兼容(无需安装mod!)
- 照明层:夜晚的世界
- 快速:在单线程操作中,在不到5分钟内为巨大的3GB存档创建完整的地图
- 多线程支持:将
-j N
传递给渲染器以使用N
个并行线程进行生成 - 增量更新:仅重新创建已更改区域的地图瓦片
- 通常在单线程操作中占用少于100MB的RAM(当传递
-j
时可能更高) - 跨平台:在Linux、Windows上运行,也可能在其他系统如MacOS上运行
关于
MinedMap由两个组件组成:一个地图渲染器,它从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作业。
请注意,没有Web服务器无法打开查看器 index.html,因为它无法从 file://
URI加载生成的地图信息。出于测试目的,您可以使用最小化的HTTP服务器,例如,如果您已安装Python,只需在查看器目录中运行以下命令
python3 -m http.server
此测试服务器非常慢,无法处理并发请求,因此请使用合适的Web服务器,如 nginx,或将查看器与生成的地图文件一起上传到公共空间,以便其他人可以访问地图。
如果您将目录上传到远程Web服务器,您不需要上传 <viewer>/data/processed
目录,因为这个目录仅用于本地,以便可以更快地处理更新。
标志
MinedMap可以在地图上显示标志标记,点击时会弹出显示标志文本的窗口。
默认情况下,禁用了标志层的生成。可以通过将 --sign-prefix
或 --sign-filter
选项传递给MinedMap来启用它。这些选项允许配置应显示哪些标志,并且可以多次传递以显示至少匹配一个前缀或过滤器的每个标志。
--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标签。
依赖项
~0.8–1.4MB
~31K SLoC