GuiPlayerExpanded
基本信息
| 属性 | 值 |
|---|---|
| 路径 | baubles.client.gui.GuiPlayerExpanded |
| 类型 | class |
| 父类 | GuiContainer |
| 接口 | INEIGuiHandler(NEI 可选) |
| 包名 | baubles.client.gui |
资源
| 常量 | 资源 |
|---|---|
background |
baubles:textures/gui/bauble_inventory.png(旧版 GUI) |
gui_background |
baubles:textures/gui/bauble_background.png(新版侧栏 GUI) |
creative_inventory_tabs |
原版 textures/gui/container/creative_inventory/tabs.png(用于滚动条) |
字段
| 字段 | 用途 |
|---|---|
xSizeFloat, ySizeFloat |
当前鼠标坐标(供玩家模型旋转) |
showActivePotionEffects |
是否有药水效果要渲染 |
currentScroll |
滚动位置 0…1 |
isScrolling |
是否正在拖动滚动条 |
wasClicking |
上一帧左键是否按下 |
tooltipIndexCache |
最近 hover 的 bauble 槽索引(缓存) |
tooltipCache |
最近 hover 的 tooltip 内容 |
hasLwjgl3 |
Loader.isModLoaded("lwjgl3ify")(决定鼠标滚轮单位) |
布局(新版)
- bauble 槽位列于 GUI 左侧,按列竖排
- 列数由 ContainerPlayerExpanded.getColumns 决定(最多 BaublesConfig.maxColumns)
- 当槽位数 >
maxColumns*8时启用滚动条 - 滚动条区域:
guiLeft - 26 - columns*18到guiLeft - 8 - columns*18 - 玩家模型:中心
(guiLeft+51, guiTop+75),朝向鼠标
布局(旧版)
- 槽位嵌入主 GUI 内,按 4 列网格排(
slotStartX = guiLeft+79, slotStartY = guiTop+7) - 不使用滚动条,槽位上限受 GUI 高度影响
关键方法
| 方法 | 行为 |
|---|---|
updateScreen |
每帧把 container.baubles.blockEvents = false |
initGui |
清空按钮;如有药水效果则 showActivePotionEffects = true(新版) |
drawScreen |
调用 handleMouseHover(若 displayTooltipOnHover)+ handleScrollbar |
drawGuiContainerBackgroundLayer |
绑背景 → drawBaubleSlots → 玩家模型 → 药水效果 |
drawBaubleSlots |
绘制 bauble 槽位背景(每个槽位根据 ItemDebugger.getBackgroundIconForSlotType 拿到对应贴图),包含 unknown 槽位的特殊偏移处理 |
drawPotionEffects |
仿原版 inventory 渲染左侧药水效果列表 |
handleMouseHover |
鼠标在空槽位上时显示 <槽位类型名> + 是否可装备 tooltip |
handleScrollbar |
处理滚动条拖动 |
handleMouseInput |
处理滚轮;LWJGL2 与 LWJGL3 单位不同,分别转换 |
keyTyped |
若按下饰品栏热键则关闭 GUI |
handleMouseClick |
把 clickType == 4(shift-click)在 bauble 侧栏时降级为普通点击(因槽位 xDisplayPosition < 0) |
mouseClicked / mouseMovedOrUp |
当鼠标在 bauble 侧栏 UI 内时阻断原版处理,避免误丢物品 |
isClickInUI |
检测鼠标是否在 bauble 侧栏区域 |
NEI 集成
实现 INEIGuiHandler(可选):
hideItemPanelSlot把 bauble 槽位的 NEI 物品面板区域标记为隐藏,避免被药水效果面板遮挡;NEIignorePotionOverlap=true时简化逻辑
相关条目
- ContainerPlayerExpanded
- SlotBauble
- ItemDebugger - 槽位背景贴图源
- BaublesConfig -
maxColumns、useOldGuiRendering、showUnusedSlots、displayTooltipOnHover - GuiEvents - 配对的按钮事件
- GuiBaublesButton