Minecraft 1.19.2 Forge模组开发 06.建筑生成

1.12.2自定义建筑生成

1.16.5自定义建筑生成

1.18.2自定义建筑生成

我们本次尝试在主世界生成一个自定义的建筑。

在这里插入图片描述

效果展示 效果展示 效果展示

由于版本更新缘故,1.19的建筑生成将不涉及任何Java包的代码编写,只需要在数据包中对建筑生成进行自定义。

1.首先我们要使用游戏中的结构方块制作一个建筑,结构方块使用教程参考1.16.5自定义建筑生成的第一步。

我们将建筑保存为nbt文件

在这里插入图片描述

之后在开发包run\saves\建筑所在的存档\generated\你的modid\structures的路径下找到该nbt文件:

在这里插入图片描述

2.来到数据包中,路径一般为src\main\resources\data\你的modid:

在这里插入图片描述

新建structures包,将第一步中的nbt文件放入其中(文末附该nbt文件下载):
新建tags包 -> tags包中新建worldgen包 -> worldgen包中新建biome包 -> biome包中新建 -> has_structure包 -> 包中新建一个ggd.json文件(名称和你的nbt建筑名称保持一致),用于指明我们的建筑会在什么地形生成:

ggd.json

{
  "replace": false,

  "_comment": "指明我们的建筑会在什么生物群系中生成,比如草原、沙漠、雪原等",
  "values": [
    "#minecraft:is_jungle",
    "#minecraft:is_forest",
    "#minecraft:is_taiga",
    "minecraft:desert",
    "minecraft:plains",
    "minecraft:snowy_plains",
    "minecraft:sunflower_plains",
    "minecraft:savanna",
    "minecraft:savanna_plateau",
    "minecraft:windswept_savanna"
  ]
}
新建 worldgen包 -> 包中分别新建三个文件夹structure,structure_set,template_pool,可以参考上图:
之后在template_pool包中新建一个ggd包 -> ggd包中新建start_pool,用于指定该建筑起始生成信息:

start_pool.json

{
  "name": "re8joymod:ggd/start_pool",

  "fallback": "minecraft:empty",

  "elements": [
    {

      "weight": 1,
      "element": {
        //该建筑起始生成的nbt文件,也就是我们第一步中的那个文件名称
        "location": "re8joymod:ggd",

        "processors": "minecraft:empty",
        "projection": "rigid",

        "element_type": "minecraft:single_pool_element"
      }
    }
  ]
}
之后在structure包中新建我们的建筑文件ggd.json

ggd.json

{
  "type": "minecraft:jigsaw",
  
  //建筑起始生成池
  "start_pool": "re8joymod:ggd/start_pool",


  "size": 2,
  "max_distance_from_center": 80,
  //在什么群系中生成
  "biomes": "#re8joymod:has_structure/ggd",
  "step": "surface_structures",


  "start_height": {
    "absolute": 0
  },

  "project_start_to_heightmap": "WORLD_SURFACE_WG",
  "use_expansion_hack": false,

 //建筑中可以生成什么生物
  "spawn_overrides": {
    "creature": {
      "bounding_box": "piece",
      "spawns": [
        {
          "type": "minecraft:parrot",
          "weight": 1,
          "minCount": 1,
          "maxCount": 4
        }
      ]
    }
  }
}
最后在structure_set包中新建文件ggd.json,将该建筑集合放入其中:

ggd.json

{
  "structures": [
    {
      //上面structure包中的建筑放进来,生成权重为1  
      "structure": "re8joymod:ggd",
      "weight": 1
    }
  ],
  "placement": {
    //修改这个建筑id,注意两个不同的建筑的salt值不要一样
    "salt": 1642136453,
    //两个相同建筑的间隔多大
    "spacing": 20,
    //这个值不要比spacing大
    "separation": 6,
    //随意向周围扩展生成这种建筑
    "type": "minecraft:random_spread"
  }
}

3.保存文件,运行游戏:

通过指令快速找到群系位置
/locate biome minecraft:群系名称

通过点击坐标可以传送到指定地形:

在这里插入图片描述

沙漠群系 沙漠群系 沙漠群系
在这里插入图片描述

雪原群系 雪原群系 雪原群系

如果你可以在群系中找到对应的建筑,就大功告成了!

ggd.nbt下载

密码:8r94
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值