前言
众所周知 25w32a 更新了 object 文本组件嘛,就乘兴写了点小玩具。纯写着玩的所以既没有完善也没有封装。也就是说,我并没有使其自动化,也没有写进 G 键菜单等快捷入口,需要手动调用。命名空间、路径等也完全不符合任何规范。
这个玩意儿最大的好处就是不需要安装资源包,不需要将贴图处理成字体。除此之外,由于不是直接显示物品模型,而是拉取纹理贴图,导致小问题多多。能用字黑还是尽量用字黑吧。
内容
· 藉由将物品 id 与 纹理贴图路径的大致对应,能够显示很大一部分物品方块,但仍有大量物品方块的纹理路径需要针对性处理,譬如一部分物品需要添加 _front 的后缀,一部分需要添加 _side 后缀。
· 总之,我写了:
一. 将潜影盒的物品显示物品提示框 tooltip 的 Lore。稍微改改也能显示在 actionbar 和聊天框。
二. 想做物品展示,同时为了解决自动处理的贴图总是时不时有紫黑块的问题,干脆写了一个复合输入系统,可以通过一个对话框往聊天框里打复杂一些的内容。





使用
潜影盒显示:
function _:shulker_show/a
可以更新手上潜影盒的 Lore
更新之后, storage 中会缓存最新的数据,通过以下命令可以打印到对话框中
tellraw @a [{"storage":"","nbt":"List[1]",interpret:1},"\n",{"storage":"","nbt":"List[2]",interpret:1},"\n",{"storage":"_","nbt":"List[3]",interpret:1}]
或者也可以点击复合输入界面的快捷展示按钮来显示。
复合输入界面
呼出界面。
插入文本:字面义。
插入文本组件:可以插入一些像是悬浮事件、NBT组件、彩色文本之类的组件。但是由于宏的特性和引号来回套的问题,可能会有bug。如果有不符合语法的地方会报错,需要重新打开页面。
插入物品:字面义。如果有输入,会用输入覆盖纹理贴图路径(组件中的sprite)。
删除:字面义。如果有输入,删除指定序号的元素。没有则删除最后一个元素。
快速展示:直接将物品信息以特定格式展示到对话框。如果有输入同样会覆盖。快速展示不会调用已经输入好的文本,也不会将其重置。

发送:发送文本。如果输入为 '#' 则不会重置已输入好的文本。