开启辅助访问     
收藏本站

站内搜索

搜索

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

[闲聊] 万象添补更新竹柜

 发表于 2025-10-20 20:15:37 来自手机|显示全部楼层|阅读模式 IP:天津
本帖最后由 Cat_Anchor 于 2025-10-20 20:19 编辑

经过非常漫长的开发,我终于可以发布万象添补0.15.0 了。之所以花了这么长时间,是因为我尝试实现很久以前的一个想法,竹柜。这就是之前的帖子中提到的新竹质家具。

我一直想做自定义箱子,但是现有的交互方式问题太多了。现在的实体管理也可以做得不差,但是交互问题最为严重。于是我决定,推翻现有逻辑,干穿现有理论,重新设计箱子的交互方式。最后的结果是完全扔掉 UI,因为我不会做 UI,使用最原始的方法进行交互。

我设计了一些交互方式,很简单,对着竹柜的特定方块面交互就可以进行存取操作了。假设我们制作了一个竹柜,放下,我们需要与竹柜交互,这样就可以打开竹柜了。打开之后,手持要放进去的物品点击竹柜顶面或者证正面上半部分(准确地说,上五分之二部分)就可以把物品放进去了。物品进去之后会以微缩的形态显示在竹柜内部,对准这个物品空手点击竹柜就可以把物品取出来了。物品放到竹柜的哪里在一定程度上是可控的,是参考了玩家点击位置的,但是为了防止物品重叠到一起,我手动添加了分散物品位置的逻辑。

所以说竹柜真的就是现实里那种柜子,放进去的物品真的能看到那种。为了实现这一点,我不得不用方块展示实体,它实际上也能显示物品,不过物品模型是歪的。单个竹柜的容量上限是 20,也就是说,可以同时存在 20 个实体,这显然会带来卡顿。一个竹柜就可以容纳这么多实体,竹柜数量一多,卡顿就肉眼可见了。对于竹柜打开的情况,我们就是需要加载那么多实体,这我没法优化;但是我用了一种奇怪的方法优化了闭合竹柜的性能问题,这导致无论里面有多少物品,只要闭合了竹柜,那么它的性能消耗就和普通带自定义模型的方块一样。

但我这方法也导致了很多奇怪的问题,不过我们可以把那些问题看作性能面前的妥协,毕竟我这设备玩 MC 平常都开 5 区块,最多敢开 8 区块,如果我的设备运行起来不卡,那么其他大多数设备上大概率也不会卡。

竹柜还有一个有意思的特性,那就是可以用流动水冲出打开的竹柜中的物品。这不是预期功能,但是好像还挺有意思的,于是我保留了。


开发的时候我还遇到了一个奇怪的问题:破坏处于打开状态且其中有物品的竹柜会导致物品复制。我一直以为是编写的代码有问题,直到我发现了一个现象:向含有流动水的打开的竹柜中放入物品,物品被冲出去之后有时候会复制,有时候不会复制。这现象说明了什么问题?我的直觉告诉我,应该是实体定义方面的问题,于是我看了一眼实体定义,很快找到了问题。

实体定义数据中,我设置实体退出竹柜方块时会掉落它代表的物品并清除自身,还有实体进入空气时也会有相同的行为。我立刻发现了问题所在:打掉竹柜,这相当于让实体同时退出了竹柜和进入了空气,也就是触发了两次事件,就掉落了两份相同的物品。这也够离奇的了。

不过除此之外,我应该算是解决了我能想到的所有竹柜复制物品的漏洞了,任凭怎么 /kill,怎么 /tp,不管火烧竹柜,水淹竹柜,爆炸竹柜,删除竹柜,里面的物品都不会复制,当然我保证不了不会丢失,因为方块的通用破坏触发器是在之后的版本才更新的。现在已知非玩家行为的破坏可能会导致物品丢失,这属于几乎无法修复的漏洞。现在我刚开始开发 0.16.0,这个版本应该就会修复这些漏洞了,除非我又忘记修复。

总而言之,竹柜应该还算是比较稳定的系统,使用体验我不敢保证,但是技术上我已经尽最大努力了。


之前我说过我有两个想法,第一个是竹柜,现在我有些犹豫要不要尝试实现第二个想法。它也比较复杂,但是可能不会像竹柜那样花费那么久时间了。

原版最近更新了新的方块特征 minecraft:connection,我也更新了教程,但是这个特征居然不会在自身之间创建连接。也就是说,用它自定义的栅栏会连接到固体方块,但是不会自身连接,结果并排放置时只有一堆栅栏细柱子杵在那里。我也懒得回退旧逻辑了,干脆等他们修复那个漏洞再说。

对了,还有一件重要的事情,那就是万象添补0.15.0 需要游戏版本 1.21.120万象添补0.16.0 就需要游戏版本 1.21.130 了。我在 0.16.0 更新了附加包的 manifest.json 的格式版本,从 2 更新到了 3。是的,你没看错,它现在有 3 的格式版本,是在今年暑假后期悄悄更新的。版本 3 的主要内容是那些以前需要写成 [0, 0, 1] 的版本号现在需要写成 "0.0.1" 了,就这么简单。不过他们说版本 3 有个漏洞,那就是必须设置 metadata/authors 数组。


2025 年 10 月 8 日晚 22 点,我更新了我的签名的第七个版本,加入了一句话。这实际上是说考试成绩的,因为我们在 10 月 9 日月考。但是现在我不打算再改回原本的样子了,引用那时的备注:“isss 写得很好。”

苦力怕论坛,感谢有您~
 发表于 2025-10-21 08:30:38|显示全部楼层 IP:辽宁省
2#2025-10-21 08:30:38回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

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

QQ群

访问手机版

访问手机版

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

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

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

Powered by Discuz! X3.4