上次说的方块种类先放放。最近因为在mcreator和纯java中徘徊导致进度慢了很多。感觉mcreator虽然好用,但是生成的代码不是人看的加上有些功能无法实现,怕以后转不回来所以还是来学java。

好,进入正题:这次我们浅谈一下关于配方(工作台,熔炉等原版工具方块配方)的写法与方块掉落(以情况比较多的1 . 16版钻石矿为例子,因为任务量比较大就放下一篇)。

先看一下官方关于钻石块配方与钻石矿掉落的内容:

配方这玩意的包含内容很多,比如工作台配方,熔炉配方,切石机配方等等——甚至可以包含自己做的机器的配方,这或许涉及到相关的读取方法调用。

工作台配方(minecraft:crafting)

分为type(告知配方种类),pattern(合成表,仅有序合成),key(对应物品,仅有序合成),ingredients(成分,仅无序合成),result(输出物品)四个部分。

type:可填入crafting_shaped(有序合成,像剑这样的)或crafting_shapeles(无序合成,如打火石)。

分支1:有序合成:

在 crafting_shaped基础上,有pattern部分,大概长这样:

"pattern": ["###","###","###"
],

是的,就长这样——正好对应着工作台的九个格子。每个符号对应着key中的一个物品,如果这个格子不需要放置物品,直接输入空格即可。

举个例子:镐子的pattern写法可以是:

"pattern": ["###"," ! "," ! "
]

#与!各自对应着物品——这就是接下来讲的部分key。注意不要漏掉空格。

在有序合成对应的key中:大概长这样,还是以钻石块为例

"[指定符号]":{"item":"[modid,原版物品就是minecraft]:[物品id]"}。如此重复。

如下是我的赤金剑的一个配方实例:

{"type": "minecraft:crafting_shaped","pattern": [" # "," # "," ! "],"key": {"#": {"item": "arkdust:pure_gold_ingot"},"!":{"item": "minecraft:stick"}},"result": {"item": "arkdust:pure_gold_sword","count": 1}
}

分支2:无序合成:

crafting_shapeles基础上就不需要再写pattern部分了,直接跳到ingredients:大概长这样

"ingredients": [{"item": "minecraft:diamond_block"},{"item": "minecraft:gold_block"}]

这是一个例子,写的是金块和钻石块无序合成。把json缩到一行了所以显得有点奇怪。写的时候按json标准换行即可。还是附上一个打火石的配方:

{"type": "minecraft:crafting_shapeless","ingredients": [{"item": "minecraft:iron_ingot"},{"item": "minecraft:flint"}],"result": {"item": "minecraft:flint_and_steel"}
}

看这个"tag"位置的"forge:ingots/iron",在我的知识范围内这个是forge对原版mc覆写添加的,而这里的tag是写在物品nbt里的,和游戏内的(为单独的物品添加tag)不同。这样的好处就是可以样所有有这个标签的物品都能参与相应的行为——有点类似于更好的矿物词典(最初为了使mod间的矿物兼容而设置)。

最后是都有的result。item为获得的物品,也可以添加"count"来定义获得的数量。

熔炉配方(minecraft:smelting)

直接上个熔炉配方写法图:

{"type": "minecraft:smelting","experience": 3.2,"cookingtime": 120,"ingredient": {"item": "arkdust:pure_gold_ore"},"result": {"item": "arkdust:pure_gold_ingot"}
}

"type"如上,ingerdient和result区别不大。

"experience"是经验,每烧炼一个物品就可以获得这个值的经验。

"cookingtime"是烧炼时间,每20点对应一秒钟。

炼药配方

这玩意并非数据包形式,难度较大。到时候或许会在药水效果等地方讲。它不是一个数据包,而是需要对原版对应内容的覆写。

爆炸(高炉)配方(minecraft:blasting)

物品炸一下?似乎原版没有类似的机制。

好吧,有没有一种可能,这个指的是高炉配方。我的世界高炉叫做Blast Furnace,也就是可能是将物品放在高炉里烧得到。

和熔炉配方相比,除了type没有任何区别。

烟雾(烟熏炉)配方(minecraft:smoking)

同上,字面意思。

篝火(营火)配方(minecraft:campfire_cooking)

同上,字面意思。

切石机配方(minecraft:stonecutting)

切石机中使用的配方。大概长这样:

{"type": "minecraft:stonecutting","ingredient": {"item": "minecraft:…… "},"result": "minecraft:……","count": …
}

result写法和上面的有些许不同。两个minecraft:的位置都是填入mc物品id,模组物品记得把minecraft改成对应的modid。

"count"这一项写的是配方获得物品的数量。像方块切成俩半砖,这个count写2就行,依此类推。

铁砧配方(minecraft:smithing)

在铁砧中使用的配方,长这样:

{"type": "minecraft:smithing","base": {"item": "……"},"addition": {"item": "……"},"result": {"item": "……"}
}

base是铁砧中最左边格子里的物品,addition则是中间的。result最右边,按照对游戏的理解大概都能猜到意思。

Mc1.16forge官混教程/教补-#6 原版配方数据包相关推荐

  1. Mc1.16forge官混教程/教补-#1 开发环境配置的注意要点

    注意:本合集内容并不是完全的教程,而是针对mcforge的boson1.16教程(boson教程使用mcp混淆版开发,链接如下:Forge是什么 - Boson 1.16 Modding Tutori ...

  2. Mc1.16forge官混教程/教补-#5 官混方块写法差异与为方块赋予常见属性

    写法差异 在教程中,对于定义一个方块的super一行是这么写的: super(Properties.create(Material.ROCK).hardnessAndResistance(5)); 在 ...

  3. Mc1.16forge官混教程/教补-#3 物品材质覆盖注意要点[分支1]

    本篇只是一个注意事项,非教程向.其深度了解难度较大,要涉及到eventbus等东西,或许之后会讲,所以叫分支1. 首先,什么是材质覆盖:材质覆盖是在代码中通过输出某一特定变量值,以更改物品材质,大概是 ...

  4. Mc1.16forge官混教程/教补-#4 为物品赋予常用属性

    首先先明确一下关于为物品赋予属性要怎么写入--只包含一些原版中常用的. public class Dt_crystal extends Item {public Dt_crystal() {super ...

  5. 好奇那些进了大厂的程序员面试前都做了哪些准备?Android大厂面试官全套教程教你:这样准备面试顺利拿到offer

    同时由于疫情的关系,从去年开始倒闭的小公司特别多,进一步加剧了整体的就业形势.所以准备要裸辞的同学最好掂量下自己,除非已经没法忍受或者确实实力够硬,否则还是骑驴找马最好. 在工作中积累 当你还比较年轻 ...

  6. Fiddler 详尽教程与抓取移动端数据包

    转载自:http://blog.csdn.net/qq_21445563/article/details/51017605 阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Stat ...

  7. 我的世界Java版(Minecraft:Java)数据包教程 (1)

    注:本教程仅适用于我的世界Java版,即Minecraft:Java 想要学会如何创建数据包,就得先知道数据包的历史(有时间的顺路可以了解一下运作原理),数据包是于Minecraft:Java 1.1 ...

  8. Gem5模拟器,详解官网教程Event-driven programming(五)

    目录 一.解释一下gem5中的event-driven? 二.Creating a simple event callback (1)定义一个新的 C++ 类,并继承自 SimObject 抽象基类 ...

  9. ps右键不显示编辑选项_PS教程教你如何删除和修改图片文字却不留痕迹

    来这里找志同道合的小伙伴! PS教程教你如何删除和修改图片文字 PS教程怎么取删除和修改图片文字呢? 你有没有很棒的图片,但因为上面有文字所以不想用它?Photoshop有一些非常好用的功能可以去掉文 ...

  10. [pytorch] 官网教程+注释

    pytorch官网教程+注释 Classifier import torch import torchvision import torchvision.transforms as transform ...

最新文章

  1. mysqldump远程备份mysql数据库方法
  2. 计算机兴趣小组活动实施方式,信息技术兴趣小组活动计划
  3. delphi memo 查找字符 下行插入_Vim高手,从来不用鼠标2——替换、撤销、缩进、查找
  4. 学习Kotlin(三)类和接口
  5. 【Android】【转】查看内存
  6. Yii CDBCriteria常用方法
  7. 在用 Eclipse 搭建 SAP Commerce Cloud 调试环境时,错误和正确的 buildfile
  8. Delphi编程修改ProgressBar的颜色
  9. java stream 多个filter_如何在Java Stream上应用多个过滤器?
  10. 由replaceAll引发的java.util.regex.PatternSyntaxException错误
  11. 3.FreeRTOS学习笔记-任务
  12. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具
  13. SAP License:2021年度最新FICO面试题目
  14. Mysql配置项sync_binlog=0
  15. Storm原理及单机安装指南
  16. Revit中视图隐藏部分轴号字符及控制视图类别【隐藏/显示】
  17. 高等代数——大学高等代数课程创新教材(丘维声)——3.5笔记+习题
  18. APP 自动化框架设计思路分享
  19. 微信小程序自适应深色主题DarkMode源码
  20. Zabbix监控系统搭建

热门文章

  1. novipnoad电影网站分析
  2. ASCII码一览表,ASCII码对照表
  3. 基于触摸屏PLC的温度采集及简单控制
  4. iOS友盟社会化分享完全攻略
  5. 9.12测试(二)——国际象棋
  6. 【已解决】iOS程序出现警告:ARC Semantic Issue,Assigning retained object to unsafe property;object will be releas
  7. 阿里云对象存储上传或复制文件时报The request signature we calculated does not match the signature you provided...
  8. C++程序设计语言学习笔记:异常处理
  9. 下一代Play Station暂名Orbis但不支持PS3
  10. 移动服务器位置,移动协同服务器地址是怎么设置