如果你看过之前的Minecraft 1.19.2建筑生成的话,想必会更好理解这篇教程。


效果演示效果演示效果演示

1.我们本期准备生成的建筑分为4块,所以首先需要用4个结构方块将整个建筑包括起来:

2.之后我们需要用指令拿出拼图方块:

give @p minecraft:jigsaw

我们需要对拼图顺序做一个大致的设计:

来到1、2的衔接点,将我们的结构方块摆放如下:

右键建筑1的结构方块,在该方块中输入如下信息:

建筑1要找到建筑2拼图,所以它的Target PoolTarget Name中要是建筑2的名称。

右键建筑2的结构方块,在该方块中输入如下信息:

建筑2只需要被建筑1找到,不需要找别的建筑。所以它没有Target,只有自己的名字,和建筑1的Target Name一样。

同理,我们把另外两个衔接点都给完成。

我们将所有的衔接工作搞完后,将所有的建筑保存为.nbt文件:

3.在你的地图存档中的generated\minecraft\structures下找到所有的.nbt文件,存放到resources\data\re8joymod\structures路径下:

4.之后来到数据包制作:


项目结构项目结构项目结构

和之前一样,在data\你的modid\tags\worldgen\biome\has_structure中新建文件说明我们的建筑在哪些生态群系生成:

bene_house.json

{"replace": false,"_comment": " This biome tag can specify the biome directly. Or specify another biome tag by starting with # ","values": ["minecraft:plains","re8joymod:re8_ehills_biome"]
}

data\你的modid\worldgen\structure中新建文件,说明你的建筑内生成什么生物

bene_house.json

{"type": "minecraft:jigsaw",//起始生成建筑"start_pool": "re8joymod:bene_house/start_pool",//这个是指从我们中心处可以往外延伸几个建筑"size": 2,"max_distance_from_center": 100,//建筑在什么群系生成,对应上面的has_structure中的文件名称"biomes": "#re8joymod:has_structure/bene_house","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:bat","weight": 1,"minCount": 1,"maxCount": 4}]}}
}
注:上面的size可以用3维宽度优先搜索来解释:

你的建筑会从中心结构朝着上下左右前后共6个方向延伸,延伸的次数就是这个size

data\你的modid\worldgen\structure_set中新建文件,说明你的建筑生成间距、建筑生成id等内容:

bene_house.json

{// What structures to pick to try and spawn if a spot passes the placement check.// If two or more structures in this list can spawn in a biome at a spot, a random one based on weight is chosen to spawn"structures": [{"structure": "re8joymod:bene_house","weight": 1}],"placement": {// Make sure this is unique and does not match any other structure set's salt//找一个介于int间的数,不要和其他的建筑一样"salt": 36694,// The average distance apart in chunks for spawn attempts//平均几个区块的距离生成一个这种建筑"spacing": 24,// Minimum distance apart in chunks for spawn attempts// MUST ALWAYS BE SMALLER THAN spacing ABOVE"separation": 20,// The kind of placement to use. The other kind is ring based like strongholds use."type": "minecraft:random_spread"}
}

resources\data\re8joymod\worldgen\template_pool中新建我们的建筑文件夹bene_house,将我们第2步中定义的建筑新建出来:


我们的建筑1作为整个大型建筑的开头,需要命名为start_pool
start_pool.json

{//作为建筑的start_pool"name": "re8joymod:bene_house/start_pool","fallback": "minecraft:empty","elements": [{"weight": 1,"element": {//第3步中我们第一个建筑保存的名称"location": "re8joymod:bene_house","processors": "minecraft:empty","projection": "rigid","element_type": "minecraft:single_pool_element"}}]
}

第二个建筑作为拼图,命名为side_pool2

side_pool2.json

{//建筑2作为拼图,命名为side_pool2"name": "re8joymod:bene_house/side_pool2","fallback": "minecraft:empty","elements": [{"weight": 1,"element": {//第3步中我们第2个建筑的名称"location": "re8joymod:bene_house2","processors": "minecraft:empty","projection": "rigid","element_type": "minecraft:single_pool_element"}}]
}

第三个、第四个同理:

side_pool3.json

{"name": "re8joymod:bene_house/side_pool3","fallback": "minecraft:empty","elements": [{"weight": 1,"element": {"location": "re8joymod:bene_house3","processors": "minecraft:empty","projection": "rigid","element_type": "minecraft:single_pool_element"}}]
}

side_pool4.json

{"name": "re8joymod:bene_house/side_pool4","fallback": "minecraft:empty","elements": [{"weight": 1,"element": {"location": "re8joymod:bene_house4","processors": "minecraft:empty","projection": "rigid","element_type": "minecraft:single_pool_element"}}]
}

5.保存所有文件 -> 运行游戏

如果你能在你第4步中定义的生态群系里找到你的建筑,就说明你成功了!!!

Minecraft 1.19.2 Forge模组开发 07.拼图建筑(jigsaw)相关推荐

  1. Minecraft 1.19.2 Forge模组开发 05.矿石生成

    我们本次尝试在主世界生成模组中自定义的矿石 1.由于1.19的版本出现了深板岩层的矿石,我们要在BlockInit类中声明一个矿石的两种岩层形态: BlockInit.java package com ...

  2. Minecraft 1.19.2 Forge模组开发 04.动画效果物品

    我们本次实现一个具有动画效果的物品,本次演示的模型代码均在文末给出 效果演示效果演示效果演示 首先,请确保你的开发包中引入了geckolib依赖,相关教程请参考:Minecraft 1.19.2 Fo ...

  3. Minecraft 1.19.2 Forge模组开发 10.3D动画盔甲

    Minecraft 1.16.5模组开发3D盔甲 Minecraft 1.12.2模组开发3D盔甲 Minecraft 1.18.2模组开发3D动画盔甲 我们本次在1.19.2的版本中实现具有动画效果 ...

  4. Minecraft 1.19.2 Forge模组开发 08.生物生成

    Minecraft 1.18.2 生物生成 我们今天尝试在1.19中生成模组中的生物 效果演示效果演示效果演示 1.在你的项目主类中的commonSetup方法中添加模组中生物的生成规则(可参考文末M ...

  5. Minecraft 1.19.2 Forge模组开发 02.物品栏+方块+物品

    今天是1024程序员日,我们尝试在1.19.2的模组中实现物品栏.方块和物品 1.在项目主类Main.java中添加物品栏声明,同时将物品和方块的类进行注册: Main.java package co ...

  6. Minecraft 1.19.2 Forge模组开发 03.动画生物实体

    1.12.2动画生物实体教程 1.16.5动画生物实体教程 1.18.2动画生物实体教程 效 果 展 示 效果展示 效果展示 我们本次尝试在1.19.2中添加一个能够具有各种动画效果动作的生物实体. ...

  7. Minecraft 1.19.2 Forge模组开发 12.自定义鞘翅

    本次我们在模组中实现一个可用于飞行的鞘翅. 1.首先参考3D动画盔甲的教程一.二步制作盔甲的模型.动画文件. 2.模型制作完成,接下来需要制作我们的盔甲类 在items包中新建armor包 -> ...

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

    1.12.2自定义建筑生成 1.16.5自定义建筑生成 1.18.2自定义建筑生成 我们本次尝试在主世界生成一个自定义的建筑. 效 果 展 示 效果展示 效果展示 由于版本更新缘故,1.19的建筑生成 ...

  9. Minecraft 1.19.2 Fabric模组开发 07.自定义NBT标签

    我们本次使用NBT标签来实现一个生物传送工具: 演示效果 演示效果 演示效果 Q:什么是NBT标签? A:NBT标签代表着物体的许多特性.玩家可以利用NBT标签存储生物(品种.是否无敌).物品(伤害加 ...

最新文章

  1. python.freelycode.com-Python字节码介绍
  2. C++ 强制类型转换(转载)
  3. python图像识别步骤_利用百度智能云结合Python体验图像识别(转载来自qylruirui)
  4. 【SSL】错误java.security.UnrecoverableKeyException: Cannot recover key
  5. spark on yarn提交任务后总是accepted以及通过yarn关闭application
  6. 如何快速编写并运行Tiny模板语言?
  7. 无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法...
  8. hibernate笔记--缓存机制之 二级缓存(sessionFactory)和查询缓存
  9. uni-app官方教程学习手记 1
  10. matlab:Matlab基础教程 第一章 MATLAB简介 第二章 Matlab的基本使用方法
  11. 夏普计算机各键功能,夏普打印机按键说明
  12. AD18 设定PCB板子大小
  13. Kubernetes24--弹性伸缩2
  14. 联想服务器CPU系列,联想推出采用第三代英特尔至强处理器的ThinkSystem SR860 V2服务器...
  15. Win10 设备管理器一个USB设备描述符请求失败解决方法
  16. word中输入空格变点
  17. [翻译]Orchard如何工作
  18. 中文字号和磅数的联系
  19. html 标题字体修改,如何更改HTML标题字体大小?
  20. 神秘的程序员头像包 第二发

热门文章

  1. matlab短时过零率计算+源代码
  2. vue导出word纯前端实现
  3. python infor_学习Python第7天-列出函数,列表,infor
  4. win10家庭版系统 修改docker为国内镜像
  5. 音频算法检测发言者方位
  6. 移远EC20--1 AT命令初始2
  7. ieee754最小规格化正数C语言,IEEE754标准浮点格式
  8. 如何解决跟这台计算机连接的一个usb设备运行不正常
  9. 用计算机打字用哪种方法最好,打字高手练习(快速练习好电脑打字的方法)
  10. Kotlin扩展方法进化之Context Receiver