629 words
3 minutes
数据包_模组通用开发_使用jigsaw拼图生成村庄
参考
https://www.youtube.com/watch?v=XSNSPH7QySQ
注意
该教程是视频相关的内容,完整的操作可以去看视频。
建筑拼图
经过我们上次的内容,我们这次使用jigsaw做一个村庄的群落
- 我们首先建筑一些道路,并使用strucutre block将他们保存为nbt
- 将道路和我们的center区域通过jigsaw拼接起来
- 设置道路的jigsaw方块可以自己和自己相连,如图中所示
我们对center区域的设置:
我们完成对jigsaw方块的设置,其中个各个输入框的内容如图
由于我们的道路的应该是相互连接的,所以这里的name和目标的name都设置为一样的,当我们的道路生成之后,会接着替换jigsaw方块,这时有会生成道路,不过这样似乎看起来道路不会停下来了。
不过这并不用担心,第一mc是限制大小的。 第二我们可以通过设置template_pool来实现终止。
下面是我们的roads的pool
{
"name":"class1:example_pool/roads",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 3,
"element": {
"element_type": "minecraft:empty_pool_element"
}
},
{
"weight": 3,
"element": {
"location": "class1:file/roads/straight",
"element_type": "minecraft:single_pool_element",
"projection": "terrain_matching",
"processors": "minecraft:empty"
}
},
{
"weight": 2,
"element": {
"location": "class1:file/roads/joint_l",
"element_type": "minecraft:single_pool_element",
"projection": "terrain_matching",
"processors": "minecraft:empty"
}
},
{
"weight": 2,
"element": {
"location": "class1:file/roads/joint_x",
"element_type": "minecraft:single_pool_element",
"projection": "terrain_matching",
"processors": "minecraft:empty"
}
},
{
"weight": 1,
"element": {
"location": "class1:file/roads/joint_t",
"element_type": "minecraft:single_pool_element",
"projection": "terrain_matching",
"processors": "minecraft:empty"
}
}
]
}
我们来看下建筑,大概的原理也是一样的获得nbt数据,然后使用jigsaw连接不同的建筑。
先来看一个建筑的jigsaw方块的设置
来看下道路连接房子的jigsaw方块的设置
然后来看我们的templepool的设置
{
"name":"class1:example_pool/building",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"location": "class1:file/builiding/house1",
"element_type": "minecraft:single_pool_element",
"projection": "rigid",
"processors": "minecraft:empty"
}
},
{
"weight": 1,
"element": {
"location": "class1:file/builiding/house2",
"element_type": "minecraft:single_pool_element",
"projection": "rigid",
"processors": "minecraft:empty"
}
}
]
}
不仅仅可以水平方位保存,也可以上下方位保存,并且可以保存实体,这里我们生成一个马。
连接方块设置为向下:
在structure block中设置包含实体
在另一个jigsaw方块设置向上
马的池子:
{
"name":"class1:example_pool/hourse",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"location": "class1:file/entity/hourse",
"element_type": "minecraft:single_pool_element",
"projection": "rigid",
"processors": "minecraft:empty"
}
}
]
}
支持多个生物群系怎么写
我们使用tag支持多个群系,我们添加一个自己的tag
{
"values": [
"minecraft:badlands",
"minecraft:wooded_badlands"
]
}
修改我们之前的strucutre json文件
{
"biomes": "#class1:has_structure/example_structure_biome",
....
}
创建一个世界去查看你的生成吧
数据包_模组通用开发_使用jigsaw拼图生成村庄
https://fuwari.vercel.app/posts/minecraft_datapack/02-建筑拼图/