Arnis—将真实世界的地理和建筑精确地再现于《我的世界 Java 版》

Arnis 是一个用 Rust 编写的开源项目,旨在将真实世界的地理和建筑精确地再现于《我的世界 Java 版》中。通过利用 OpenStreetMap (OSM) 的地理空间数据,Arnis 提供了一个高效且稳健的解决方案,帮助用户创建复杂而逼真的《我的世界》世界。无论你是想复制自己的家乡、探索城市环境,还是构建独特的场景,Arnis 都能将你的愿景变为现实。

主要功能

  • 高细节生成:Arnis 能够生成逼真的建筑、道路、自然景观等元素,确保每个细节都尽可能接近真实世界。
  • 可扩展性:支持处理大规模数据,适用于创建大型、沉浸式的《我的世界》世界。
  • 跨平台支持:兼容 Windows、macOS 和 Linux,方便不同操作系统的用户使用。
  • 开源与模块化:代码库文档齐全,社区驱动,用户可以根据需求进行定制和扩展。

如何使用 Arnis

1. 下载或编译

你可以直接从 GitHub 发布页面 下载最新版本的 Arnis,或者如果你熟悉 Rust,也可以通过源码自行编译项目。

2. 选择区域

  • 使用 Arnis 提供的 矩形工具 选择你想要生成的区域。
  • 指定一个《我的世界》世界(建议使用新的平坦世界以避免冲突)。
  • 点击 “开始生成”,世界将从坐标 0, 0, 0 开始生成。
Arnis—将真实世界的地理和建筑精确地再现于《我的世界 Java 版》插图

工作原理

Arnis 的生成过程分为几个步骤,确保生成的世界既准确又高效:

  1. 获取地理空间数据:Arnis 通过 Overpass API 从 OpenStreetMap 获取所选区域的地理空间数据。
  2. 解析原始数据:提取节点、路径和关系,并将其转换为《我的世界》的坐标系统。
  3. 优先级排序:确保建筑物、道路等元素按照正确的层次结构生成,避免冲突。
  4. 生成《我的世界》世界:使用不同的元素处理器(如 generate_buildingsgenerate_highways)根据数据放置方块。
  5. 创建地面层:为世界添加基础地形(如草地、泥土等)。
  6. 保存世界:修改后的区块将保存回《我的世界》的区域文件中。

常见问题

之前不是用 Python 写的吗?

是的,Arnis 最初是用 Python 开发的,但为了提升性能和效率,项目被移植到了 Rust。旧的 Python 实现可以在 python-legacy 分支 中找到。

数据来源是什么?

Arnis 使用 OpenStreetMap (OSM) 提供的免费地理空间数据。这些数据通过 Overpass API 获取,确保了数据的实时性和准确性。

《我的世界》世界生成是如何实现的?

Arnis 使用 Rust 的 fastnbt 库与《我的世界》的世界格式交互,从而能够读取和修改区域文件,实现高效的方块生成。

名字的由来?

该项目以德国最小的城市 Arnis 命名,该城市因其规模适中且地理特征丰富,成为开发和调试算法的理想测试案例。

待办事项和已知问题

以下是一些计划中的改进和已知问题:

  • 坐标映射:将真实世界坐标更精确地映射到《我的世界》坐标系中(#29)。
  • 高程支持:实现对地形高程的处理,使生成的世界更加逼真(#66)。
  • 屋顶类型:添加更多样化的房屋屋顶设计。
  • 图形用户界面 (GUI):设计并实现一个更友好的用户界面,简化操作流程。
  • 空区块问题:已找到临时解决方案,但仍需进一步优化。
  • 内存优化:提高程序的内存使用效率,特别是在处理大规模数据时。

为什么选择 Arnis?

Arnis 将 真实世界的准确性《我的世界》的创意潜力 完美结合,为建筑者、教育者和爱好者提供了一个强大的工具。其模块化设计、性能优化以及社区驱动的发展模式,使其在《我的世界》模组领域中独树一帜。无论是用于个人创作还是教学演示,Arnis 都能为你带来前所未有的体验。

下载地址
百度云盘
密码:brgu
123盘
密码:ZbxZ

评论