类 TreeWidget<T,V extends TreeEntryWidget<T>>
java.lang.Object
net.minecraft.client.gui.components.AbstractWidget
net.minecraft.client.gui.components.AbstractContainerWidget
org.hiedacamellia.immersiveui.client.gui.component.widget.tree.TreeWidget<T,V>
- 类型参数:
T- 节点数据的类型V- 节点组件的类型,必须继承自 TreeEntryWidget
- 所有已实现的接口:
net.minecraft.client.gui.components.events.ContainerEventHandler,net.minecraft.client.gui.components.events.GuiEventListener,net.minecraft.client.gui.components.Renderable,net.minecraft.client.gui.components.TabOrderedElement,net.minecraft.client.gui.layouts.LayoutElement,net.minecraft.client.gui.narration.NarratableEntry,net.minecraft.client.gui.narration.NarrationSupplier,net.neoforged.neoforge.client.extensions.IAbstractWidgetExtension
- 直接已知子类:
DebugTreeWidget,WheelTreeWidget
public class TreeWidget<T,V extends TreeEntryWidget<T>>
extends net.minecraft.client.gui.components.AbstractContainerWidget
TreeWidget 是一个自定义的树形组件,用于显示和管理树形结构的节点。
它支持拖拽、选择、更新布局以及渲染标题和子节点。
-
嵌套类概要
从接口继承的嵌套类/接口 net.minecraft.client.gui.narration.NarratableEntry
net.minecraft.client.gui.narration.NarratableEntry.NarrationPriority -
字段概要
字段修饰符和类型字段说明protected booleanprotected net.minecraft.client.gui.Fontprotected TreeEntryWidget<T> protected TreeEntryWidget<T> protected intprotected int从类继承的字段 net.minecraft.client.gui.components.AbstractWidget
active, alpha, height, isHovered, packedFGColor, UNSET_FG_COLOR, visible, width从接口继承的字段 net.minecraft.client.gui.components.events.GuiEventListener
DOUBLE_CLICK_THRESHOLD_MS -
构造器概要
构造器构造器说明TreeWidget(List<? extends V> root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 构造一个 TreeWidget 实例,使用多个根节点。TreeWidget(V root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 构造一个 TreeWidget 实例,使用单个根节点。 -
方法概要
修饰符和类型方法说明List<? extends net.minecraft.client.gui.components.events.GuiEventListener> children()获取树的根节点。getAt(double mouseX, double mouseY) 根据鼠标位置获取对应的节点。获取当前选中的节点。void隐藏标题。boolean判断指定的节点是否正在被拖拽。booleanmouseClicked(double mouseX, double mouseY, int button) 处理鼠标点击事件。booleanmouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) 检查是否正在拖拽。booleanmouseReleased(double mouseX, double mouseY, int button) 处理鼠标释放事件。static <T,V extends TreeEntryWidget<T>>
TreeWidget<T, V> of(List<V> root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeWidget 实例,使用多个根节点。static <T,V extends TreeEntryWidget<T>>
TreeWidget<T, V> of(V root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeWidget 实例,使用单个根节点。protected voidrenderBg(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件的背景。protected voidrenderChildren(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染子节点。protected voidrenderTitle(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件的标题。protected voidrenderWidget(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件,包括背景、标题和子节点。void更新组件的布局,包括根节点及其子节点的位置和大小。protected voidupdateWidgetNarration(net.minecraft.client.gui.narration.NarrationElementOutput narrationElementOutput) 从类继承的方法 net.minecraft.client.gui.components.AbstractContainerWidget
getFocused, isDragging, isFocused, nextFocusPath, setDragging, setFocused, setFocused从类继承的方法 net.minecraft.client.gui.components.AbstractWidget
clearFGColor, clicked, createNarrationMessage, defaultButtonNarrationText, getBottom, getFGColor, getHeight, getMessage, getRectangle, getRight, getTabOrderGroup, getTooltip, getWidth, getX, getY, isActive, isHovered, isHoveredOrFocused, isMouseOver, isValidClickButton, narrationPriority, onClick, onDrag, onRelease, playDownSound, render, renderScrollingString, renderScrollingString, renderScrollingString, setAlpha, setFGColor, setHeight, setMessage, setRectangle, setSize, setTabOrderGroup, setTooltip, setTooltipDelay, setWidth, setX, setY, updateNarration, visitWidgets, wrapDefaultNarrationMessage从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 net.minecraft.client.gui.components.events.ContainerEventHandler
charTyped, getChildAt, getCurrentFocusPath, keyPressed, keyReleased, mouseScrolled从接口继承的方法 net.minecraft.client.gui.components.events.GuiEventListener
getRectangle, isMouseOver, mouseMoved从接口继承的方法 net.neoforged.neoforge.client.extensions.IAbstractWidgetExtension
onClick从接口继承的方法 net.minecraft.client.gui.layouts.LayoutElement
setPosition从接口继承的方法 net.minecraft.client.gui.components.TabOrderedElement
getTabOrderGroup
-
字段详细资料
-
font
protected net.minecraft.client.gui.Font font -
root
-
onDrag
-
select
-
dragable
protected boolean dragable -
titleWidth
protected int titleWidth -
titleHeight
protected int titleHeight
-
-
构造器详细资料
-
TreeWidget
public TreeWidget(V root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 构造一个 TreeWidget 实例,使用单个根节点。- 参数:
root- 根节点x- 组件的 X 坐标y- 组件的 Y 坐标component- 标题文本font- 用于渲染文本的字体
-
TreeWidget
public TreeWidget(List<? extends V> root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 构造一个 TreeWidget 实例,使用多个根节点。- 参数:
root- 根节点列表x- 组件的 X 坐标y- 组件的 Y 坐标component- 标题文本font- 用于渲染文本的字体
-
-
方法详细资料
-
getSelect
获取当前选中的节点。- 返回:
- 当前选中的节点
-
isDrag
判断指定的节点是否正在被拖拽。- 参数:
widget- 要检查的节点- 返回:
- 如果正在拖拽该节点返回 true,否则返回 false
-
hideTitle
public void hideTitle()隐藏标题。 -
updateWidget
public void updateWidget()更新组件的布局,包括根节点及其子节点的位置和大小。 -
of
public static <T,V extends TreeEntryWidget<T>> TreeWidget<T,V> of(V root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeWidget 实例,使用单个根节点。- 类型参数:
T- 节点数据的类型V- 节点组件的类型- 参数:
root- 根节点x- 组件的 X 坐标y- 组件的 Y 坐标component- 标题文本font- 用于渲染文本的字体- 返回:
- 创建的 TreeWidget 实例
-
of
public static <T,V extends TreeEntryWidget<T>> TreeWidget<T,V> of(List<V> root, int x, int y, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeWidget 实例,使用多个根节点。- 类型参数:
T- 节点数据的类型V- 节点组件的类型- 参数:
root- 根节点列表x- 组件的 X 坐标y- 组件的 Y 坐标component- 标题文本font- 用于渲染文本的字体- 返回:
- 创建的 TreeWidget 实例
-
getAt
根据鼠标位置获取对应的节点。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标- 返回:
- 鼠标所在的节点
-
children
获取树的根节点。- 返回:
- 根节点
-
mouseClicked
public boolean mouseClicked(double mouseX, double mouseY, int button) 处理鼠标点击事件。 如果点击了一个子节点,则选择该节点并可能开始拖拽。 如果点击了根节点,则更新组件布局。- 指定者:
mouseClicked在接口中net.minecraft.client.gui.components.events.ContainerEventHandler- 指定者:
mouseClicked在接口中net.minecraft.client.gui.components.events.GuiEventListener- 覆盖:
mouseClicked在类中net.minecraft.client.gui.components.AbstractContainerWidget- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标button- 鼠标按钮- 返回:
- 如果点击了一个子节点返回 true,否则返回 false
-
mouseReleased
public boolean mouseReleased(double mouseX, double mouseY, int button) 处理鼠标释放事件。 如果正在拖拽,则结束拖拽并处理拖拽的节点。- 指定者:
mouseReleased在接口中net.minecraft.client.gui.components.events.ContainerEventHandler- 指定者:
mouseReleased在接口中net.minecraft.client.gui.components.events.GuiEventListener- 覆盖:
mouseReleased在类中net.minecraft.client.gui.components.AbstractContainerWidget- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标button- 鼠标按钮- 返回:
- 始终返回 false
-
mouseDragged
public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) 检查是否正在拖拽。- 指定者:
mouseDragged在接口中net.minecraft.client.gui.components.events.ContainerEventHandler- 指定者:
mouseDragged在接口中net.minecraft.client.gui.components.events.GuiEventListener- 覆盖:
mouseDragged在类中net.minecraft.client.gui.components.AbstractContainerWidget- 返回:
- 如果正在拖拽返回 true,否则返回 false
-
renderWidget
protected void renderWidget(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件,包括背景、标题和子节点。- 指定者:
renderWidget在类中net.minecraft.client.gui.components.AbstractWidget- 参数:
guiGraphics- 渲染上下文mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标v- 渲染的部分时间
-
renderBg
protected void renderBg(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件的背景。- 参数:
guiGraphics- 渲染上下文mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标v- 渲染的部分时间
-
renderTitle
protected void renderTitle(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染组件的标题。- 参数:
guiGraphics- 渲染上下文mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标v- 渲染的部分时间
-
renderChildren
protected void renderChildren(net.minecraft.client.gui.GuiGraphics guiGraphics, int mouseX, int mouseY, float v) 渲染子节点。- 参数:
guiGraphics- 渲染上下文mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标v- 渲染的部分时间
-
updateWidgetNarration
protected void updateWidgetNarration(net.minecraft.client.gui.narration.NarrationElementOutput narrationElementOutput) - 指定者:
updateWidgetNarration在类中net.minecraft.client.gui.components.AbstractWidget
-