以编程方式修改 Minecraft World 文件 (Java)

Modifying Minecraft World files Programatically (Java)

我在 Eclipse 中有一个 forge server/client 项目设置,并且是 运行 普通服务器。我想复制我的 children 在另一个香草世界中建造的一些结构并稍微修改它们(即更改比例,替换块类型等)并将它们放置在新世界中。最终目标是根据 "designs" 创建大型城镇。我是否需要查看源世界 mca 文件并处理它们以获得相关数据,然后将其注入我的目标世界?我知道 MCEdit 但没用过。查看该源代码是否是一个好的起点?

您有几种不同的策略可以遵循,具体取决于您想要做什么。

  1. 创建 pre-made 地图。

http://www.mcedit.net/ 是 Minecraft 世界的离线编辑器(运行s 在游戏之外),允许您轻松复制和粘贴、编辑和编写 python 脚本来过滤和变换方块。

https://github.com/sk89q/worldedit/ 是 Minecraft 世界的在线编辑器(运行s 在游戏中),允许您轻松复制和粘贴(使用原理图)运行 不同的命令到 运行 不同的变换/画笔,以及编写 javascript 脚本,或使用 Java.

直接挂接到它的 API
  1. 世界生成

此选项需要通过 Mod、Plugin or DataPack

创建自定义世界生成

但是你可以在世界上创建你自己的自然生成的村庄。

Minecraft 本身对此支持有限,无需任何编程。

此功能称为“structures”,您可以创建自定义结构并导出它们,以便使用结构块在数据包中使用。

此外,如果您正在创建 mod,结构块是从您的孩子中导出建筑物以包含在随机生成中的最简单方法。

更改比例会很棘手,但您可以完全过滤块,并保存多个 schematics/structures 或者以编程方式替换一些块状态。