Minecraft 1.19.2 Fabric模组开发 10.建筑生成

news2024/11/24 11:52:07

我们本次尝试在Fabric 1.19.2中生成一个自定义的建筑。

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

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

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

我们将建筑保存为nbt文件

cr1.jpg

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

cr2.jpg

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

cr3.jpg

新建structures包,将第一步中的nbt文件放入其中:

新建tags包 -> tags包中新建worldgen包 -> worldgen包中新建biome包 -> biome包中新建 -> has_structure包 -> 包中新建一个ggd.json文件(名称和你的nbt建筑名称保持一致),用于指明我们的建筑会在什么地形生成:

ggd.json

{
  "replace": false,

  "_comment": "指明我们的建筑会在什么生物群系中生成,比如草原、沙漠、雪原等",
  "values": [
    "minecraft:plains",
    "minecraft:snowy_plains",
    "minecraft:sunflower_plains",
    "minecraft: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:群系名称

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

cr4.jpg

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业内部沟通即时通讯软件要怎么选?

随着企业信息化的快速发展,为了工作效率的提高,即时通讯工具已经成为了众多企业办公时的标配,同时,各大企业对即时通讯功能的要求也越来越高。但是,现在市场上即时通信软件众多,各种功能和服务都是参差不齐…

python爬虫基本库的使用

博主简介:博主是一个大二学生,主攻人工智能领域研究。感谢缘分让我们在CSDN相遇,博主致力于在这里分享关于人工智能,C,python,爬虫等方面的知识分享。如果有需要的小伙伴,可以关注博主&#xff…

Java面试基础篇

目录 一、集合 1.集合与集合之间的区别 2.集合子类之间的区别(数据结构) 二、线程 三、面向对象 继承 多态 四、异常 五、IO流 六、序列化与反序列化 今天给大家分享 Java基础篇的面试题,小编给大家稍微整理了一下,希望即…

RHCE(web服务器)

文章目录一、www简介(一)网址及HTTP简介(二)HTTP协议请求的工作流程二、www服务器的类型(一)仅提供用户浏览的单向静态网页(二)提供用户互动接口的动态网站三、www服务器的基本配置四…

苹果证书p12和描述文件的创建教程

在hbuilderx或apicloud这些uniapp框架工具打包苹果APP的时候,需要p12证书和证书profile文件来编译,目前网上很少使用windows电脑生成p12证书的教程,官方的教程都是需要使用苹果电脑来创建的。 这里,我们这篇文章来教会大家如何使…

【虚拟仿真】Unity3D中实现鼠标悬浮UI上显示文字

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 本篇文章实现一个鼠标悬浮在UI上显示文字的功能,实…

LMK04828时钟芯片配置历程——SPI接口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 LMK04828时钟芯片配置历程——SPI接口总结最近有一个开发板需要去调试,开发板上包含了AD9371和LMK04828时钟芯片,而我的任务是需要将他们都配置起来。…

c++入门之输入输出命名空间

文章目录前言一、输入输出二、命名空间1.使用命名空间的原因2.命名空间定义3.命名空间的定义注意事项(1)命名空间只能在全局范围使用(2)命名空间可以嵌套(3)命名空间是开放的,可以随时添加新的成员&#xf…

mysql流程控制

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:数据库 📧如果文章知识点有错误的地方,请…

QT---制作简易串口助手

一、ui制作打开QTCreator创建一个新文件2.进入UI设计界面进行设计进入ui界面后,选择相应的控件将串口助手的样子给做出来,我选择的是如下的控件做这个串口助手:1.按钮:2.下拉列表3.标签4.组合框5.文本编辑绘制ui界面如下&#xff…

如何用Windows自带命令修改文件和图片的MD5

首先说下,md5到底是啥,它是一段固定长度的数据。无论原始数据是多长或多短,其MD5值都是128bit。另外md5是确定性,一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值;类似人类的身份…

快速搭建前后端分离项目

后端 配置文件和依赖 创建一个SpringBoot项目,采用Mybatis-Plus快速构建项目。 application.yml进行配置 server:port: 80spring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/ems?useSSLfalse&useUnicodetrue&charact…

C++——哈希

目录 unordered系列关联式容器 unordered_mapunordered_map在线文档说明 unordered_map的接口说明 unordered系列优势 哈希 解决哈希冲突 1.闭散列——开放定址法 思考:哈希表什么情况下进行扩容?如何扩容? 插入元素代码 查找元素 …

Linux操作系统--用户和群组(保姆级教程)

用户和群组 用户 什么是用户,即登录到linux操作系统的账号就是用户。在linux操作系统中账户的类别主要有三类:1、超级管理员(root),在linux中超级管理员的账户是root,这个root账户就类似于windows操作系统中administr…

pom.xml配置中引入Oracle依赖

pom.xml配置中引入Oracle依赖1. Download Driver1.1 pom.xml2.Awakening1. Download Driver 因为Oracle是要收费的,所以不能通过远程的方式来引入,可以通过mvn指令导入到Maven本地仓库。 下载地址 Oracle Website: https://www.oracle.com/database/tech…

MyBatis案例 | 使用映射配置文件实现CRUD操作——查询所有数据

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JavaWeb Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&…

各类SDR的USB接口一致性测试

最近用高带宽示波器测了好几个SDR产品的USB2接口一致性。由于探头数量只有1个,所以不能测全所有的项目。但已经包含了最主要的USB眼图(信号质量)项目。 待测件包含: 1.原版RTL-SDR 2.自制RTL-SDR 3.HackRF 4.无线电罗盘v0.8 测试…

css实现超出div长度文字自动隐藏或用省略号表示

网页中一些区域的标题文字是不能换行的,例如首页显示的文章标题,因为布局是固定的,换行会打乱布局,从而使网页产生错位。因此,我们需要一行一段文字,超出行宽的文字用省略号表示或者直接去掉不用省略号代替…

在CentOS-6.9配置apache服务(1)---基于个人主页的身份验证

文章目录一 系统环境二 用户身份验证2.1 编写主配置文件2.2 编写用户身份验证的配置文件2.3 创建用户密码文件2.4 创建测试页面2.5 测试三 基于个人主页的身份验证3.1 修改主配置文件3.2 创建测试用户3.3 创建测试的个人主页3.4 设置防火墙和selinux3.5 测试在部署了apache服务…

LeetCode-189. 轮转数组

目录方法一:使用额外的数组方法二:环状替换方法三:数组翻转题目来源 189. 轮转数组 方法一:使用额外的数组 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原…