类 ScreenWidgetLayer
java.lang.Object
org.hiedacamellia.immersiveui.client.gui.layer.ScreenWidgetLayer
- 所有已实现的接口:
net.minecraft.client.gui.LayeredDraw.Layer
ScreenWidgetLayer 是一个用于管理屏幕小部件的图层类。
它实现了 LayeredDraw.Layer 接口,提供了屏幕渲染、鼠标交互和键盘事件处理的功能。
-
字段概要
字段修饰符和类型字段说明protected boolean是否绘制虚拟鼠标指针。protected boolean是否启用偏移效果。static final ScreenWidgetLayer单例实例,用于全局访问 ScreenWidgetLayer。static final net.minecraft.resources.ResourceLocation屏幕图层的资源位置标识符。protected double鼠标的 X 坐标。protected double鼠标的 Y 坐标。protected float偏移因子,用于控制偏移效果的强度。protected @Nullable net.minecraft.client.gui.screens.Screen当前显示的屏幕对象。protected float虚拟鼠标的内半径。protected float虚拟鼠标的外半径。 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidaddPos(double mouseX, double mouseY) 更新鼠标位置。booleanclick(int button, int action) 处理鼠标点击事件。@Nullable net.minecraft.client.gui.screens.Screen获取当前显示的屏幕。boolean检查是否有屏幕正在显示。booleankeyPressed(int keyCode, int scanCode, int modifiers) 处理键盘按键事件。void移除当前显示的屏幕。voidrender(net.minecraft.client.gui.GuiGraphics guiGraphics, net.minecraft.client.DeltaTracker deltaTracker) 渲染屏幕小部件。voidsetDrawVirtualMouse(boolean drawVirtualMouse) 设置是否绘制虚拟鼠标指针。voidsetEnableOffset(boolean enableOffset) 设置是否启用偏移效果。voidsetOffsetFactor(float offsetFactor) 设置偏移因子。voidsetScreen(@NotNull net.minecraft.client.gui.screens.Screen screen) 设置当前显示的屏幕。voidsetVirtualMouseRadius(float innerRadius, float outerRadius) 设置虚拟鼠标的半径。
-
字段详细资料
-
INSTANCE
单例实例,用于全局访问 ScreenWidgetLayer。 -
LOCATION
public static final net.minecraft.resources.ResourceLocation LOCATION屏幕图层的资源位置标识符。 -
screen
@Nullable protected @Nullable net.minecraft.client.gui.screens.Screen screen当前显示的屏幕对象。 -
enableOffset
protected boolean enableOffset是否启用偏移效果。 -
offsetFactor
protected float offsetFactor偏移因子,用于控制偏移效果的强度。 -
mouseX
protected double mouseX鼠标的 X 坐标。 -
mouseY
protected double mouseY鼠标的 Y 坐标。 -
drawVirtualMouse
protected boolean drawVirtualMouse是否绘制虚拟鼠标指针。 -
virtualMouseInnerRadius
protected float virtualMouseInnerRadius虚拟鼠标的内半径。 -
virtualMouseOuterRadius
protected float virtualMouseOuterRadius虚拟鼠标的外半径。
-
-
构造器详细资料
-
ScreenWidgetLayer
public ScreenWidgetLayer()
-
-
方法详细资料
-
getScreen
@Nullable public @Nullable net.minecraft.client.gui.screens.Screen getScreen()获取当前显示的屏幕。- 返回:
- 当前的屏幕对象,如果没有屏幕则返回 null
-
setScreen
public void setScreen(@NotNull @NotNull net.minecraft.client.gui.screens.Screen screen) 设置当前显示的屏幕。 初始化屏幕并捕获鼠标。- 参数:
screen- 要设置的屏幕对象
-
removeScreen
public void removeScreen()移除当前显示的屏幕。 停止鼠标捕获。 -
hasScreen
public boolean hasScreen()检查是否有屏幕正在显示。- 返回:
- 如果有屏幕显示则返回 true,否则返回 false
-
setEnableOffset
public void setEnableOffset(boolean enableOffset) 设置是否启用偏移效果。- 参数:
enableOffset- 是否启用偏移
-
setOffsetFactor
public void setOffsetFactor(float offsetFactor) 设置偏移因子。- 参数:
offsetFactor- 偏移因子值
-
addPos
public void addPos(double mouseX, double mouseY) 更新鼠标位置。 根据提供的增量值调整鼠标位置,并限制在屏幕范围内。- 参数:
mouseX- 鼠标 X 坐标的增量mouseY- 鼠标 Y 坐标的增量
-
click
public boolean click(int button, int action) 处理鼠标点击事件。- 参数:
button- 鼠标按键action- 按键动作(按下或释放)- 返回:
- 如果事件被处理则返回 true,否则返回 false
-
keyPressed
public boolean keyPressed(int keyCode, int scanCode, int modifiers) 处理键盘按键事件。- 参数:
keyCode- 按键代码scanCode- 扫描代码modifiers- 修饰键- 返回:
- 如果事件被处理则返回 true,否则返回 false
-
render
public void render(net.minecraft.client.gui.GuiGraphics guiGraphics, net.minecraft.client.DeltaTracker deltaTracker) 渲染屏幕小部件。- 指定者:
render在接口中net.minecraft.client.gui.LayeredDraw.Layer- 参数:
guiGraphics- 渲染上下文deltaTracker- 时间增量跟踪器
-
setDrawVirtualMouse
public void setDrawVirtualMouse(boolean drawVirtualMouse) 设置是否绘制虚拟鼠标指针。- 参数:
drawVirtualMouse- 是否绘制虚拟鼠标
-
setVirtualMouseRadius
public void setVirtualMouseRadius(float innerRadius, float outerRadius) 设置虚拟鼠标的半径。- 参数:
innerRadius- 内半径outerRadius- 外半径
-