MCreator自制模组教程 入门(7) GUI与叠加层
EndX-水桶
2024年08月21日 19:50
收录于文集
共9篇

注:可以先看合集中的前几期(前几期是挺久以前的,质量可能有点问题,以后可能会修改或重制


GUI,即用户图形界面。原版中能右键打开的界面都属于GUI,如工作台界面、熔炉界面、酿造台界面等。

GUI类型:决定这个GUI有没有栏位(slots)。有栏位的GUI当中,玩家的物品栏会显示,玩家可以将物品放置到GUI的栏位中。如果选择没有栏位的GUI,这个GUI将不拥有任何物品栏。

右边的按钮可以为GUI添加不同的组件。

文本标签:一段文字。

图像:就是图像。

按钮:一个玩家可以按下并触发指定流程的按钮。

此外,还有物品输入输出等栏位。


大部分GUI的功能(除非你只想做个存储物品的箱子)都需要使用流程来实现。

“槽位与GUI流程”板块下,有一些适用于制作GUI的流程。

举个栗子,如果你要做一个用于合成的设备,可以在GUI上放一个按钮,并在按下按钮时执行流程。

可以使用“获取 事件/目标实体 当前打开的GUI的槽位第 x 个位置的物品”(第几个位置是在放置GUI元素时填写的,放完之后也能看到或修改)来检测是否有指定的合成原材料,再使用“移除……一个” 来消耗掉合成所需物品。最后,在输出槽位放一个成品。

如此就构成了一个最简单的合成装置。


有些时候,GUI需要特殊的,会变化的文字显示。比如如果你的自定义合成台的合成需要耗时,最好显示一下还剩几秒。

你需要先创建一个有返回值的流程。

比如这样。

可以把返回值想象成一个流程的“执行结果”。打个比方,A让流程B去找家里有多少个水桶,流程B去找,发现有五个,再回来告诉A。这当中的5就是流程的返回值,即流程B返回了水桶的数量。

如果你使用了“如果”,每个可能出现的结果都必须有一个返回值。任何“返回”被执行时,这个流程就不会继续执行了。

图中,如果条件成立,返回1,下面的返回2不会执行;如果条件不成立,返回2。

创建完成后,只需要在GUI里新建一个文本,再在这里选择刚刚保存的,带有返回值的流程即可。

注意!此处返回值的格式必须是文本,不能是数字。如果你要显示一个数字,用“创建文本”流程块先给转换成文本再返回文本。

对于“标签显示条件”,原理差不多,只要使用“返回的逻辑”就行啦,这样的话这个文本只有当返回值为true时才显示。


GUI做完了……等等,在啥时候让玩家能打开并看到GUI呢?

一般来讲,有右键物品打开(在物品的“高级属性”里把GUI绑定给物品),右键方块打开(启用方块实体,再绑定GUI,再设置右键打开),绑定GUI到实体,和直接使用流程让玩家打开以及关闭GUI。


叠加层(Overlay)和GUI有点像。它通常用于显示一些东西(比如说,法力条),而不是像GUI一样通过某种方式手动打开并交互。

叠加层的特殊设置有右上角的“叠加层目标”和“渲染优先级”。

“渲染优先级”很好理解,如果两个叠加层弄到一起了,优先级更高的会在上面。

“叠加层目标”决定了叠加层在什么时候会显示。通常,选择Ingame(在游戏中)即可。如果你想要让玩家在打开铁砧页面,或是戴上南瓜的时候看到叠加层,也可以按需修改。


本期大概就到这里啦

嗯,熟悉各种流程块的用途还是很重要的,可以多用流程里的搜索功能

近期学业繁忙,之后如果有空了,在过了入门篇之后可能会来点 制作演示?

除此之外最近我也在学手写(不然……教程也很难往后写了,MCR自带的东西都不是太难摸索)