Minecraft 1.19.2 Forge模组开发 07.拼图建筑(jigsaw)
如果你看过之前的Minecraft 1.19.2建筑生成的话,想必会更好理解这篇教程。
1.我们本期准备生成的建筑分为4块,所以首先需要用4个结构方块将整个建筑包括起来:
2.之后我们需要用指令拿出拼图方块:
give @p minecraft:jigsaw
我们需要对拼图顺序做一个大致的设计:
来到1、2的衔接点,将我们的结构方块摆放如下:
右键建筑1的结构方块,在该方块中输入如下信息:
建筑1要找到建筑2拼图,所以它的Target Pool
和Target 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)相关推荐
- Minecraft 1.19.2 Forge模组开发 05.矿石生成
我们本次尝试在主世界生成模组中自定义的矿石 1.由于1.19的版本出现了深板岩层的矿石,我们要在BlockInit类中声明一个矿石的两种岩层形态: BlockInit.java package com ...
- Minecraft 1.19.2 Forge模组开发 04.动画效果物品
我们本次实现一个具有动画效果的物品,本次演示的模型代码均在文末给出 效果演示效果演示效果演示 首先,请确保你的开发包中引入了geckolib依赖,相关教程请参考:Minecraft 1.19.2 Fo ...
- 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的版本中实现具有动画效果 ...
- Minecraft 1.19.2 Forge模组开发 08.生物生成
Minecraft 1.18.2 生物生成 我们今天尝试在1.19中生成模组中的生物 效果演示效果演示效果演示 1.在你的项目主类中的commonSetup方法中添加模组中生物的生成规则(可参考文末M ...
- Minecraft 1.19.2 Forge模组开发 02.物品栏+方块+物品
今天是1024程序员日,我们尝试在1.19.2的模组中实现物品栏.方块和物品 1.在项目主类Main.java中添加物品栏声明,同时将物品和方块的类进行注册: Main.java package co ...
- Minecraft 1.19.2 Forge模组开发 03.动画生物实体
1.12.2动画生物实体教程 1.16.5动画生物实体教程 1.18.2动画生物实体教程 效 果 展 示 效果展示 效果展示 我们本次尝试在1.19.2中添加一个能够具有各种动画效果动作的生物实体. ...
- Minecraft 1.19.2 Forge模组开发 12.自定义鞘翅
本次我们在模组中实现一个可用于飞行的鞘翅. 1.首先参考3D动画盔甲的教程一.二步制作盔甲的模型.动画文件. 2.模型制作完成,接下来需要制作我们的盔甲类 在items包中新建armor包 -> ...
- Minecraft 1.19.2 Forge模组开发 06.建筑生成
1.12.2自定义建筑生成 1.16.5自定义建筑生成 1.18.2自定义建筑生成 我们本次尝试在主世界生成一个自定义的建筑. 效 果 展 示 效果展示 效果展示 由于版本更新缘故,1.19的建筑生成 ...
- Minecraft 1.19.2 Fabric模组开发 07.自定义NBT标签
我们本次使用NBT标签来实现一个生物传送工具: 演示效果 演示效果 演示效果 Q:什么是NBT标签? A:NBT标签代表着物体的许多特性.玩家可以利用NBT标签存储生物(品种.是否无敌).物品(伤害加 ...
最新文章
- python.freelycode.com-Python字节码介绍
- C++ 强制类型转换(转载)
- python图像识别步骤_利用百度智能云结合Python体验图像识别(转载来自qylruirui)
- 【SSL】错误java.security.UnrecoverableKeyException: Cannot recover key
- spark on yarn提交任务后总是accepted以及通过yarn关闭application
- 如何快速编写并运行Tiny模板语言?
- 无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法...
- hibernate笔记--缓存机制之 二级缓存(sessionFactory)和查询缓存
- uni-app官方教程学习手记 1
- matlab:Matlab基础教程 第一章 MATLAB简介 第二章 Matlab的基本使用方法
- 夏普计算机各键功能,夏普打印机按键说明
- AD18 设定PCB板子大小
- Kubernetes24--弹性伸缩2
- 联想服务器CPU系列,联想推出采用第三代英特尔至强处理器的ThinkSystem SR860 V2服务器...
- Win10 设备管理器一个USB设备描述符请求失败解决方法
- word中输入空格变点
- [翻译]Orchard如何工作
- 中文字号和磅数的联系
- html 标题字体修改,如何更改HTML标题字体大小?
- 神秘的程序员头像包 第二发