开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[闲聊] 自定义组件 v2 的消息

 发表于 2025-2-1 13:03:08 来自手机|显示全部楼层|阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2025-2-1 14:14 编辑

这句话只能在这里看到,如果点进来,你是看不到的。是不是很神奇?                    

大家还记得这份列表吗?

  • 移除blocks.json。
  • 发布自定义重力方块的教程文档。
  • 同步 Java 版的方块标签。
  • 添加改变原版方块战利品表的功能。(短期)
  • 使自定义组件可以传参,并使其看起来更像其他组件,很可能需要脚本v2.0.0。(2025 年)
  • 添加colormap对自定义方块的支持,例如树叶和草地颜色。(2025 年,中长期)
  • 添加数据驱动原版方块模型ID。原版方块模型可能用了一些硬编码功能,也将添加这些功能。(长期)
  • 重新添加minecraft:unwalkable和minecraft:immovable这样的组件。
  • 通过minecraft:material_instances组件设置方块的纹理变种。(长期)
  • 自定义方块音效。(长期)
  • 添加“一个方块有多个碰撞箱”的功能。(长期)
  • 进一步设置方块红石属性,如定义接收红石信号的反应/发出红石信号。
  • 添加onBlockDestroyed触发器。(很久之后)
  • 尝试添加beforeOnPlayerInteract触发器。
  • 使方块可以含雪或含熔岩。
  • 逐渐实现原版所有方块的数据驱动。

去年暑假,他们说了自定义方块的开发计划,我就整理出了上面的列表。

现在我们来看看它们都实现了没有。首先是移除 blocks.json,从现在的情况看,这个文件的作用确实很小,不过是定义方块的音效。当然还有例如 ambient_occlusion_exponent 字段的存在,但这个字段的作用也可以通过 minecraft:material_instances 组件中的字段实现,说明确实在逐步弃用或转移 blocks.json 的功能。最后的结果,有可能是这个文件仅能被原版使用,也可能是完全弃用。他们还说,这是一个艰难的决定,但时间会治愈一切(因此带来的后果)。

接下来是发布自定义重力方块的教程。说实话我从来没试过自定义重力方块,要让我去做这个教程也不一定能做出来。不过我搜索了一下,发现还没有发布自定义重力方块的教程,那么这个大概是不会实现了。

第三个,同步方块标签。最近在方块标签方面确实有很大进步,尤其是可以通过方块标签,让自定义方块可以被原版工具识别并且快速挖掘。当然,还需要同步更多方块标签。

第四个应该还没有实现,我们现在还是没办法更改原版方块的掉落物或战利品表的功能。虽然他们说了是短期,但这个短期不可能是半年,因为后面的一些中期长期的内容都加入了。看起来他们延后了这个功能的加入。

第五个我很关注,自定义组件的传参很重要,如果他们真的加了这个功能,那么我们就不需要定义很多自定义组件来实现一些相对重复的功能。而且他们最近真的提到了这个!就在昨天,2025 年 1 月 31 日,他们更新了学习门户文档,就在这篇文章中,他们写下了这段话:

For example, an upcoming capability - custom components v2 - is now registered from script before block JSON files are loaded, to provide better error messages when errors are found in block JSON files.

翻译如下:

例如,即将推出的功能——自定义组件 v2——现在会在加载方块 JSON 文件之前通过脚本注册,以便在方块 JSON 文件中发现错误时提供更准确的错误信息。

这篇文章主要写了 SAPI 的 v2 概览,包括如何将 v1 代码升级到 v2。在提到 v2 的时序更新时,他们就顺便说了自定义组件的 v2 定义会在方块定义文件加载之前加载。

他们既然都说了“即将推出”,那说明自定义组件的第二代应该快要更新出来了,然后我意识到,我们可以开发一个通用的 API 接口,就像 Java 版的那些模组 API 一样。

在这个通用的 API 接口中,我们可以直接实现各种功能,比如食物食用时添加状态效果,或者实现方块之间的连接,就像无框玻璃一样。

如果真的出现了这样一个 API,我们显然就不用自己去实现那些功能了,可以专注于特定功能的开发。这样的话,我们只需要把这个充当接口 API 的附加包放在整个包堆栈的最底层,然后在它上面加其他附加包即可。

不过现在一切都还没有确定,所以我们继续看那份列表。

第六条是根据 colormap 给自定义方块染色,这显然就是最近 1.21.70.20 更新出来的功能。不过我不知道他们为什么要把这个功能放在 minecraft:map_color 组件下,这个组件不应该是用来定义方块的地图颜色的吗?还是说我理解错了,它真的只是调整地图颜色,而不是给方块染色?我测试了一下,把这个功能用在了棉花糖矮草丛上,但没有看出任何效果,也许它需要方块的纹理是黑白的,不能出现彩色。

第七个实现了一小部分,比如 minecraft:geometry.cross 这样的模型 ID,就是原版草的模型,但是显然还需要数驱更多原版方块的模型 ID。

第八个也是最近添加的功能,虽然还没有添加 minecraft:unwalkableminecraft:immovable,但他们添加了一个全新的类似于这两个组件的组件——minecraft:replaceable。这个组件很特别,它有点像实体组件,就是它必须是一个空对象 {},而不能写 truefalse。其实这种写法在资源包相机的定义文件中更普遍,如果存在这个组件而且值为 {},那么启用这个功能。如果要禁用这个功能,那就不应该出现这个组件。

之后就没什么实现的了,有模型的方块的纹理变种还没实现,也就是目前所有方块都不能有纹理变种,而这是之前有的功能。自定义方块音效也没什么消息,倒是实体音效搞出了别的名堂。

之后是一个方块多个碰撞箱,如果有这个功能,我们就能完美还原楼梯了,可惜现在没有。他们说的是长期,而现在已经加了根据 colormap 的方块染色,说明这个功能也快到了,再等几个月说不定就加入了。

接下来的红石方面的建议确实很有用,如果有了这个,我的附加包的那些红石机器的卡顿就会少很多。虽然之后那些也很有用,可是没什么可能很快实现,要等到它们的加入,等待时间大概至少是以年为单位的。

苦力怕论坛,感谢有您~
 发表于 2025-2-1 13:14:05 来自手机|显示全部楼层 IP:山东省
第二代?
我正在写 SAPI 的教程,看来我似乎不用写了
2#2025-2-1 13:14:05收起回复
Cat_Anchor2025-2-1 13:22
回复举报
SAPI 之所以更新到 v2.0 只是因为它有破坏性更改,就是 v1 的代码不兼容 v2,但目前需要更改的语法还算少
Cat_Anchor2025-2-1 13:23
回复举报
所以大部分目前的 SAPI 教程应该还能用,写新教程只需要注意一下更改的那些地方就好了
Cat_Anchor2025-2-1 13:23
回复举报
至于时序的更新,其实也没什么大影响
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2025-2-2 20:06:28 来自手机|显示全部楼层 IP:广东省
膜拜大佬
3#2025-2-2 20:06:28回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-19 10:55

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4