slots 外部 pad 构造示例
padByPx(...) 是相对 frame 原点定位,不受 slot 坐标约束,因此可放在 slot 区域外。
下面示例在 9x6 大箱子左侧外部放置一块 FCE 说明文本:
import link.botwmcs.fizzy.ui.core.FizzyGui;
import link.botwmcs.fizzy.ui.core.FizzyGuiBuilder;
import link.botwmcs.fizzy.ui.core.HostType;
import link.botwmcs.fizzy.ui.element.component.FizzyComponentElement;
import link.botwmcs.fizzy.ui.element.slot.SlotElement;
import link.botwmcs.fizzy.ui.frame.FizzyFrame;
import net.minecraft.network.chat.Component;
FizzyFrame frame = new FizzyFrame(Component.literal("Large Chest + Sidebar"));
FizzyGui gui = FizzyGuiBuilder.start()
.host(HostType.MENU)
.sizeSlots(6)
.frame(frame)
.pad(1, 1, 6, 9)
.element(new SlotElement())
.done()
// slot 外部:X 为负数表示放到面板左侧外区域
.padByPx(-96, frame.metrics().slotStartTopPx(), 88, frame.metrics().slotSizePx() * 6)
.element(FizzyComponentElement.builder()
.addText(Component.literal("Tips"))
.addText(Component.literal("- Shift-click to move stacks"))
.addText(Component.literal("- Right-click splits stack"))
.wrap(true)
.lineSpacing(1.0f)
.shadow(true)
.build())
.done()
.build();可直接用于:
- 侧边说明面板
- 统计信息条
- 网格外工具区
Last updated on