AbstractButton.java
net.minecraft.client.gui.components.AbstractButton
信息
- 全限定名:net.minecraft.client.gui.components.AbstractButton
- 类型:public abstract class
- 包:net.minecraft.client.gui.components
- 源码路径:src/main/java/net/minecraft/client/gui/components/AbstractButton.java
- 起始行号:L19
- 继承:AbstractWidget.WithInactiveMessage
- 职责:
TODO
字段/常量
-
TEXT_MARGIN- 类型:
int - 修饰符:
protected static final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
SPRITES- 类型:
WidgetSprites - 修饰符:
private static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
overrideRenderHighlightedSprite- 类型:
Supplier<Boolean> - 修饰符:
private - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AbstractButton(int x, int y, int width, int height, Component message) @ L28
- 构造器名:AbstractButton
- 源码定位:L28
- 修饰符:public
参数:
- x: int
- y: int
- width: int
- height: int
- message: Component
说明:
TODO
方法
下面的方法块按源码顺序生成。
public abstract void onPress(InputWithModifiers input) @ L32
- 方法名:onPress
- 源码定位:L32
- 返回类型:void
- 修饰符:public abstract
参数:
- input: InputWithModifiers
说明:
TODO
protected final void extractWidgetRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) @ L34
- 方法名:extractWidgetRenderState
- 源码定位:L34
- 返回类型:void
- 修饰符:protected final
参数:
- graphics: GuiGraphicsExtractor
- mouseX: int
- mouseY: int
- a: float
说明:
TODO
protected abstract void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) @ L40
- 方法名:extractContents
- 源码定位:L40
- 返回类型:void
- 修饰符:protected abstract
参数:
- graphics: GuiGraphicsExtractor
- mouseX: int
- mouseY: int
- a: float
说明:
TODO
protected void extractDefaultLabel(ActiveTextCollector output) @ L42
- 方法名:extractDefaultLabel
- 源码定位:L42
- 返回类型:void
- 修饰符:protected
参数:
- output: ActiveTextCollector
说明:
TODO
protected final void extractDefaultSprite(GuiGraphicsExtractor graphics) @ L46
- 方法名:extractDefaultSprite
- 源码定位:L46
- 返回类型:void
- 修饰符:protected final
参数:
- graphics: GuiGraphicsExtractor
说明:
TODO
public void onClick(MouseButtonEvent event, boolean doubleClick) @ L58
- 方法名:onClick
- 源码定位:L58
- 返回类型:void
- 修饰符:public
参数:
- event: MouseButtonEvent
- doubleClick: boolean
说明:
TODO
public boolean keyPressed(KeyEvent event) @ L63
- 方法名:keyPressed
- 源码定位:L63
- 返回类型:boolean
- 修饰符:public
参数:
- event: KeyEvent
说明:
TODO
public void setOverrideRenderHighlightedSprite(Supplier<Boolean> overrideRenderHighlightedSprite) @ L76
- 方法名:setOverrideRenderHighlightedSprite
- 源码定位:L76
- 返回类型:void
- 修饰符:public
参数:
- overrideRenderHighlightedSprite: Supplier
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class AbstractButton extends AbstractWidget.WithInactiveMessage {
protected static final int TEXT_MARGIN = 2;
private static final WidgetSprites SPRITES = new WidgetSprites(
Identifier.withDefaultNamespace("widget/button"),
Identifier.withDefaultNamespace("widget/button_disabled"),
Identifier.withDefaultNamespace("widget/button_highlighted")
);
private @Nullable Supplier<Boolean> overrideRenderHighlightedSprite;
public AbstractButton(int x, int y, int width, int height, Component message) {
super(x, y, width, height, message);
}
public abstract void onPress(InputWithModifiers input);
@Override
protected final void extractWidgetRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) {
this.extractContents(graphics, mouseX, mouseY, a);
this.handleCursor(graphics);
}
protected abstract void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a);
protected void extractDefaultLabel(ActiveTextCollector output) {
this.extractScrollingStringOverContents(output, this.getMessage(), 2);
}
protected final void extractDefaultSprite(GuiGraphicsExtractor graphics) {
graphics.blitSprite(
RenderPipelines.GUI_TEXTURED,
SPRITES.get(this.active, this.overrideRenderHighlightedSprite != null ? this.overrideRenderHighlightedSprite.get() : this.isHoveredOrFocused()),
this.getX(),
this.getY(),
this.getWidth(),
this.getHeight(),
ARGB.white(this.alpha)
);
}
@Override
public void onClick(MouseButtonEvent event, boolean doubleClick) {
this.onPress(event);
}
@Override
public boolean keyPressed(KeyEvent event) {
if (!this.isActive()) {
return false;
} else if (event.isSelection()) {
this.playDownSound(Minecraft.getInstance().getSoundManager());
this.onPress(event);
return true;
} else {
return false;
}
}
public void setOverrideRenderHighlightedSprite(Supplier<Boolean> overrideRenderHighlightedSprite) {
this.overrideRenderHighlightedSprite = overrideRenderHighlightedSprite;
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
Minecraft.getInstance()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
WidgetSprites()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ARGB.white()
- 引用位置: