我的世界模组制作器java
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