类 TreeEntryWidget<T>
java.lang.Object
net.minecraft.client.gui.components.AbstractWidget
org.hiedacamellia.immersiveui.client.gui.component.widget.tree.TreeEntryWidget<T>
- 类型参数:
T- 节点数据的类型
- 所有已实现的接口:
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
- 直接已知子类:
DebugTreeEntryWidget,WheelTreeEntryWidget
public class TreeEntryWidget<T>
extends net.minecraft.client.gui.components.AbstractWidget
TreeEntryWidget 是一个自定义的树形结构组件,用于表示树的节点。
它支持折叠/展开、拖拽、子节点管理等功能。
-
嵌套类概要
从接口继承的嵌套类/接口 net.minecraft.client.gui.narration.NarratableEntry
net.minecraft.client.gui.narration.NarratableEntry.NarrationPriority -
字段概要
字段修饰符和类型字段说明protected List<TreeEntryWidget<T>> protected Tprotected booleanprotected final net.minecraft.network.chat.Componentprotected intprotected net.minecraft.client.gui.Fontprotected booleanprotected TreeEntryWidget<T> protected intprotected intprotected TreeWidget<T, TreeEntryWidget<T>> protected final net.minecraft.network.chat.Component从类继承的字段 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 -
构造器概要
构造器构造器说明TreeEntryWidget(net.minecraft.network.chat.Component message, net.minecraft.client.gui.Font font) 构造一个 TreeEntryWidget 实例。 -
方法概要
修饰符和类型方法说明voidaccept(TreeEntryWidget<T> widget) 接受一个拖拽的节点作为子节点。voidaddChild(int index, TreeEntryWidget<T> child) 在当前节点的子节点列表中添加一个子节点。voidaddChild(TreeEntryWidget<T> child) 在当前节点的子节点列表中添加一个子节点。voidfold()折叠当前节点的子节点,使其不可见。getAt(double mouseX, double mouseY) 根据鼠标位置获取当前节点或其子节点。getData()获取当前节点关联的数据。getTree()获取所属的树组件。getWidgetAt(double mouseX, double mouseY) 根据鼠标位置获取直接子节点。booleanhasChild()检查当前节点是否有子节点。voidinsert(TreeEntryWidget<T> widget) 在当前节点之前插入一个节点。booleanisHovered(double mouseX, double mouseY) 检查鼠标是否悬停在当前节点上。booleanisRoot()判断当前节点是否为根节点。booleanmouseClicked(double mouseX, double mouseY, int button) 处理鼠标点击事件。voidmoveChild(TreeEntryWidget<T> child, int index) 移动一个子节点到指定位置。static <T> TreeEntryWidget<T> of(T data, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeEntryWidget 实例。voidremoveChild(TreeEntryWidget<T> child) 从当前节点的子节点列表中移除一个子节点。protected voidrenderChildren(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设置当前节点关联的数据。booleanshouldAccept(double mouseX, double mouseY) 判断鼠标位置是否可以接受拖拽的节点。booleanshouldChangeFold(double mouseX, double mouseY, int button) 检查鼠标位置是否可以切换折叠状态。voidtree(TreeWidget<T, TreeEntryWidget<T>> tree) 设置所属的树组件,并将当前节点标记为根节点。voidunfold()展开当前节点的子节点,使其可见。void更新当前节点及其子节点的布局。protected voidupdateWidgetNarration(net.minecraft.client.gui.narration.NarrationElementOutput narrationElementOutput) 从类继承的方法 net.minecraft.client.gui.components.AbstractWidget
clearFGColor, createNarrationMessage, defaultButtonNarrationText, getBottom, getFGColor, getHeight, getMessage, getRectangle, getRight, getTabOrderGroup, getTooltip, getWidth, getX, getY, isActive, isFocused, isHovered, isHoveredOrFocused, isMouseOver, isValidClickButton, mouseDragged, mouseReleased, narrationPriority, nextFocusPath, onClick, onDrag, onRelease, playButtonClickSound, playDownSound, render, renderScrollingString, renderScrollingString, renderScrollingString, setAlpha, setFGColor, setFocused, 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.GuiEventListener
charTyped, getBorderForArrowNavigation, getCurrentFocusPath, keyPressed, keyReleased, mouseMoved, mouseScrolled从接口继承的方法 net.neoforged.neoforge.client.extensions.IAbstractWidgetExtension
onClick从接口继承的方法 net.minecraft.client.gui.layouts.LayoutElement
setPosition从接口继承的方法 net.minecraft.client.gui.narration.NarratableEntry
getNarratables
-
字段详细资料
-
font
protected net.minecraft.client.gui.Font font -
fold
protected boolean fold -
parent
-
children
-
data
-
isRoot
protected boolean isRoot -
tree
-
selfWidth
protected int selfWidth -
selfHeight
protected int selfHeight -
foldWidth
protected int foldWidth -
foldComponent
protected final net.minecraft.network.chat.Component foldComponent -
unfoldComponent
protected final net.minecraft.network.chat.Component unfoldComponent
-
-
构造器详细资料
-
TreeEntryWidget
public TreeEntryWidget(net.minecraft.network.chat.Component message, net.minecraft.client.gui.Font font) 构造一个 TreeEntryWidget 实例。- 参数:
message- 节点显示的消息font- 用于渲染文本的字体
-
-
方法详细资料
-
tree
设置所属的树组件,并将当前节点标记为根节点。- 参数:
tree- 所属的树组件
-
getTree
获取所属的树组件。- 返回:
- 所属的树组件
-
isRoot
public boolean isRoot()判断当前节点是否为根节点。- 返回:
- 如果是根节点返回 true,否则返回 false
-
insert
在当前节点之前插入一个节点。- 参数:
widget- 要插入的节点
-
getAt
根据鼠标位置获取当前节点或其子节点。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标- 返回:
- 鼠标所在的节点
-
getWidgetAt
根据鼠标位置获取直接子节点。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标- 返回:
- 鼠标所在的直接子节点
-
shouldAccept
public boolean shouldAccept(double mouseX, double mouseY) 判断鼠标位置是否可以接受拖拽的节点。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标- 返回:
- 如果可以接受返回 true,否则返回 false
-
accept
接受一个拖拽的节点作为子节点。- 参数:
widget- 要接受的节点
-
of
public static <T> TreeEntryWidget<T> of(T data, net.minecraft.network.chat.Component component, net.minecraft.client.gui.Font font) 创建一个 TreeEntryWidget 实例。- 类型参数:
T- 节点数据的类型- 参数:
data- 节点关联的数据component- 节点显示的消息font- 用于渲染文本的字体- 返回:
- 创建的 TreeEntryWidget 实例
-
addChild
在当前节点的子节点列表中添加一个子节点。- 参数:
index- 子节点的插入位置child- 要添加的子节点
-
addChild
在当前节点的子节点列表中添加一个子节点。- 参数:
child- 要添加的子节点
-
removeChild
从当前节点的子节点列表中移除一个子节点。- 参数:
child- 要移除的子节点
-
moveChild
移动一个子节点到指定位置。- 参数:
child- 要移动的子节点index- 新的位置索引
-
hasChild
public boolean hasChild()检查当前节点是否有子节点。- 返回:
- 如果有子节点返回 true,否则返回 false
-
setData
设置当前节点关联的数据。 -
getData
获取当前节点关联的数据。- 返回:
- 当前节点的数据
-
fold
public void fold()折叠当前节点的子节点,使其不可见。 在折叠状态下,子节点不会被渲染。 -
unfold
public void unfold()展开当前节点的子节点,使其可见。 在展开状态下,子节点会被渲染。 -
updateWidget
public void updateWidget()更新当前节点及其子节点的布局。 -
shouldChangeFold
public boolean shouldChangeFold(double mouseX, double mouseY, int button) 检查鼠标位置是否可以切换折叠状态。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标button- 鼠标按钮- 返回:
- 如果可以切换折叠状态返回 true,否则返回 false
-
mouseClicked
public boolean mouseClicked(double mouseX, double mouseY, int button) 处理鼠标点击事件。- 指定者:
mouseClicked在接口中net.minecraft.client.gui.components.events.GuiEventListener- 覆盖:
mouseClicked在类中net.minecraft.client.gui.components.AbstractWidget- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标button- 鼠标按钮- 返回:
- 如果处理了点击事件返回 true,否则返回 false
-
isHovered
public boolean isHovered(double mouseX, double mouseY) 检查鼠标是否悬停在当前节点上。- 参数:
mouseX- 鼠标的 X 坐标mouseY- 鼠标的 Y 坐标- 返回:
- 如果鼠标悬停在当前节点上返回 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- 渲染的部分时间
-
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
-