【Minecraft】Fabric Mod开发完整流程3 - 配方与挖掘等级

news2024/11/27 2:32:05

目录

    • 新配方
      • 工作台配方
        • 无序合成配方
        • 有序合成配方
      • 熔炉配方
    • 挖掘等级与掉落物
      • 挖掘等级
        • 标准等级配置
        • 易错点分析
      • 战利品与掉落物
        • 普通方块掉落物
        • 矿石方块掉落物

新配方


工作台配方

为便于你快速创建配方,可以直接去这个网站上通过拖拽的方式创建属于你的配方表,它会自动生成 json 文件,非常方便!
之后你仅需修改对应的物品方块为我们自定义的即可
https://crafting.thedestruc7i0n.ca/


无序合成配方

此配方用于将宝石块分解为单个锭

注意,minecraft:crafting_shapeless 表示无序合成

{
	"type": "minecraft:crafting_shapeless",
	"ingredients": [
		{
			"item": "tutorialmod:zer_block"
		}
	],
	"result": {
		"item": "tutorialmod:zer_ingot",
		"count": 9
	}
}

有序合成配方

下面展示使用 9 个 ingot 合成一个 block 的配方

{
	"type": "minecraft:crafting_shaped",
	"pattern": ["###", "###", "###"],
	"key": {
		"#": {
			"item": "tutorialmod:zer_ingot"
		}
	},
	"result": {
		"item": "tutorialmod:zer_block",
		"count": 1
	}
}

熔炉配方

熔炉配方很简单就三个,一个是普通熔炉配方、一个是高炉配方,当然还有一个烟熏炉配方(只不过我们自定义的物品都是矿石,没法用烟熏炉)

下面是普通熔炉配方(smelting)

{
	"type": "minecraft:smelting",
	"category": "misc",
	"cookingtime": 200,
	"experience": 1,
	"group": "zer",
	"ingredient": {
		"item": "tutorialmod:zer_diamond"
	},
	"result": "tutorialmod:zer_ingot"
}

这个是高炉配方(blasting)

{
	"type": "minecraft:blasting",
	"category": "misc",
	"cookingtime": 100,
	"experience": 0.7,
	"group": "copper_ingot",
	"ingredient": {
		"item": "minecraft:copper_ore"
	},
	"result": "minecraft:copper_ingot"
}

挖掘等级与掉落物


挖掘等级

挖掘等级用于确定你生成的方块能否被挖掘,以及可以使用何种工具进行挖掘

这一步和以往的MOD开发都有不同,由于MC版本迭代原因,内容更新较多,所以必须要按照指定步骤一一执行~


标准等级配置

首先按照下图所示创建这些文件夹和 json 文件
根目录 data 和 asstes 同级!

在这里插入图片描述

json 文件默认内容均为:

{
	"replace": false,
	"values": []
}

mineable 文件夹下四个文件分别对应斧头、锄头、镐子、铲子可以破坏的对应方块

把你新注册的自定义方块的 id 塞进 values 里面,就表示可以使用这一类工具来破坏

比如我想使用 pickaxe,也就是镐子来破坏宝石方块,那么我应该在 pickaxe.json 里面写:

{
	"replace": false,
	"values": ["tutorialmod:zer_block", "tutorialmod:raw_zer_block"]
}

任何一个以“needs”开头的文件均表示方块可以被哪一种等级的工具所挖掘
目前只有四种等级:

  • level_4 最高级,即下界合金工具可破坏
  • diamond
  • iron
  • stone

比如我想让我的方块只能被石质材料的工具破坏,那么我需要在 needs_stone_tool.json 里面写对应的 id

{
	"replace": false,
	"values": [
		"tutorialmod:zer_block",
		"tutorialmod:zer_ore",
		"tutorialmod:nether_zer_ore"
	]
}

总而言之,你需要设置两次:

  1. 第一次,在对应的工具 json 文件内设置,确定方块可被破坏的最佳工具
  2. 第二次,在对应的工具等级 json 文件内设置,确定方块可被破坏的工具等级

易错点分析

needs_tool_level_4.json 可被下界合金工具破坏的方块,这个文件只能在上图显示的固定文件夹内书写!

上图所示的所有文件以及文件夹名称都是死规定!别乱改!照抄就可以了!!!


战利品与掉落物

对于某些特殊的方块,我们需要设置不同类型的掉落物

  • 普通方块:掉落方块本身
  • 矿石方块:掉落一定数量的矿石原矿

掉落物配置请在该文件夹下配置:tutorialmod/loot_tables/blocks,每个方块对应一种掉落方式!

在这里插入图片描述


普通方块掉落物

在这里推荐一个快速生成 loot_tabels 的网站,可以提升开发效率:https://misode.github.io/loot-table/

比如挖掘一个普通方块,直接掉落他自身,那就不需要过多设置,直接抄下方代码即可
你要修改的地方就是我加注释的地方

代码清单 zer_block.json

{
	"type": "minecraft:block",
	"pools": [
		{
			"bonus_rolls": 0.0,
			"conditions": [
				{
					"condition": "minecraft:survives_explosion"
				}
			],
			"entries": [
				{
					"type": "minecraft:item",
					"name": "tutorialmod:zer_block" // 把他修改为方块ID
				}
			],
			"rolls": 1.0
		}
	]
}

矿石方块掉落物

矿石挖掘后会掉落任意数量的矿石原矿,需要人为指定这个范围

同样的,你只需要修改下方代码注释部分,其他的保持默认直接套用即可

{
	"type": "minecraft:block",
	"pools": [
		{
			"bonus_rolls": 0.0,
			"entries": [
				{
					"type": "minecraft:alternatives",
					"children": [
						{
							"type": "minecraft:item",
							"conditions": [
								{
									"condition": "minecraft:match_tool",
									"predicate": {
										"enchantments": [
											{
												"enchantment": "minecraft:silk_touch",
												"levels": {
													"min": 1
												}
											}
										]
									}
								}
							],
							// 设置你的方块ID
							"name": "tutorialmod:end_stone_zer_ore"
						},
						{
							"type": "minecraft:item",
							"functions": [
								{
									"add": false,
									"count": {
										"type": "minecraft:uniform",
										// 挖掘后掉落物的数量范围
										"max": 6.0,
										"min": 4.0
									},
									"function": "minecraft:set_count"
								},
								{
									"enchantment": "minecraft:fortune",
									"formula": "minecraft:ore_drops",
									"function": "minecraft:apply_bonus"
								},
								{
									"function": "minecraft:explosion_decay"
								}
							],
							// 挖掘后掉落的物品或者方块
							"name": "tutorialmod:zer_diamond"
						}
					]
				}
			],
			"rolls": 1.0
		}
	],
	"random_sequence": "minecraft:blocks/copper_ore"
}

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

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

相关文章

9.3.1网络原理(应用层)

HTTP和HTTPS后面的博客会另外介绍. 一.设计应用层协议: 1.明确当前请求和响应中包含哪些内容. 2.明确具体请求和响应格式. 网络上传输的数据,本质上就是字符串(无法直接传对象). 序列号:发送数据的时候,把对象转化成二进制字符串.(注意,网络上传输的数据统一为大端字节序…

基于飞桨图学习框架实现的城市地点动态关系挖掘

李双利 飞桨开发者技术专家(PPDE),百度研究院商业智能实验室研究实习生,中国科学技术大学在读博士生。 主要进行时空数据挖掘和图深度学习的相关研究工作。曾获2021年百度研究院年度优秀实习生,有多篇基于飞桨完成的论…

Linux常见面试题,应对面试分享

操作系统基础 1.cpu占⽤率太⾼了怎么办? 排查思路是什么,怎么定位这个问题,处理流程 其他程序: 1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程 2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程 3.询问开发或者⽼⼤,是什么业务在使⽤这个进程…

Linux学习之sed多行模式

N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下: goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…

无代码集成励销云CRM连接更多应用

场景描述: 基于励销云的开放API,实现无代码集成连接励销云与其它应用。通过Aboter可轻松搭建业务自动化流程,实现多个应用之间的数据连接。 接口能力: 用户模块业务模块拜访签到模块公海客户模块联系人模块合同模块客户模块任务…

EVE-NG 隐藏没有镜像的模板

eve-ng 默认情况下,在添加node时,会列出所有的模板,这样用着很不方便。 通过以下方式,可以使没有设备的模板不可见 cp /opt/unetlab/html/includes/config.php.distribution /opt/unetlab/html/includes/config.php 如下图&#…

大数据面试题:说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:Spark常见的算子介绍一下 参考答案: 我们先来看下Spark算子的作用: 下图描述了Spark在运行转换中通过算…

tomcat服务七层搭建动态页面查看

一个服务器多实例复制完成 配置tomcat多实例的环境变量 vim /etc/profile.d/tomcat.sh配置tomcat1和tomcat2的环境变量 进入tomcat1修改配置 测试通信端口是否正常 连接正常 toncat 2 配置修改 修改这三个 端口配置修改完成 修改tomcat1 shudown 分别把启动文件指向tomcat1…

【Linux】进程信号之信号的处理

进程信号 三 一、信号的处理时机二、内核态与用户态1、内核态与用户态的转化2、重谈进程地址空间 三、信号的处理1、一般信号的处理流程2、捕捉信号的处理流程3、信号捕捉函数sigaction 一、信号的处理时机 在前面我们讲过信号产生和保存以后,我们知道进程对于产生…

YOLOv5、YOLOv8改进: GSConv+Slim Neck

论文题目:Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles 论文:https://arxiv.org/abs/2206.02424 代码:https://github.com/AlanLi1997/Slim-neck-by-GSConv 在计算机视觉领域&#x…

YOLOv8“炼丹“之扑克牌识别

最近沉迷炼丹, 效果图: 框架Ultralytics YOLOv8 来自GitHub的介绍: Ultralytics YOLOv8 is a cutting-edge, state-of-the-art (SOTA) model that builds upon the success of previous YOLO versions and introduces new features and improvements to further boost pe…

Centos7源码安装redis

1、下载redis Index of /releases/ 2、解压redis tar -xvf redis-6.2.9.tar.gz 3、进入解压后的目录 cd redis-6.2.9/4、指定内存分配器为 libc make MALLOClibc 5、进入src目录,安装 cd src && make install6、运行 ./redis-server 7、添加开机…

IIC延时函数

别人家的程序 void i2c_Start(void) {OLED_I2C_SDA_1(); //SDA 总线置1OLED_I2C_SCL_1(); //SCL 总线置1i2c_Delay(); //延时信号OLED_I2C_SDA_0(); //置 0 i2c_Delay();OLED_I2C_SCL_0(); //SCL 置0i2c_Delay(); }延时函数 static void i2c_Delay(void) {uint8_t…

企业时代下的汽车4S店形势分析

据网上数据显示,2022年约有2000家汽车4S店闭店退网,这一数据不由令人惊叹! 疫情放开后,原以为汽车经销商的春天也即将来临,可它们有些已经死在了半路上。 2023年伊始,经销商大戏以一则破产消息开幕——浙…

NR700 —基础知识

01 中国5G频段分布及700M频谱 中国运营商频段分布: 不同频段的无线电波的特征: 700M网络因其低频特性,有着极佳的覆盖能力和穿透能力,但同时相对运营商已有的高频网络有着明显的性能差距。因此700M网络更适合用于底层网络深度覆盖…

mac harbor的安装

harbor的安装 为什么要整这个呢,因为我在学习k8s,但是需要一个自己的镜像仓库。于是,最开始想到的就是在本地直接部署一个,还比较安全、快速。 直接下载了官方的项目,运行脚本发现出了异常,这种异常我已经…

帮群里一位留学生订机票,省了2.2万元

注:此篇文章为峰哥环游世界番外篇,我会记录很多我认为值得分享的图文。在环游世界交流群里的同学记得扫描下方二维码直接观看,不要付费,具体事宜可以看贴:付费文章说明! 想进一步了解我环游世界的故事&…

React 之 Suspense和lazy

一. Suspense 参考链接&#xff1a;https://react.docschina.org/reference/react/Suspense suspense&#xff1a;n. 焦虑、悬念 <Suspense> 允许你显示一个退路方案&#xff08;fallback&#xff09;直到它的所有子组件完成加载。 <Suspense fallback{<Loadin…

history记录日期时间和日志记录操作

history命令能查看到操作日期和时间的配置方法&#xff1a; 1&#xff09;在/etc/profile文件中添加一行&#xff1a; export HISTTIMEFORMAT"%F %T whoami " 2&#xff09;保存后&#xff0c;执行加载命令&#xff1a; source /etc/profile 3&#xff09;然后检…

“编写一次,无限应用:深入理解C++模板“

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; C学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大…