GraphNode¶
实验性: This class may be changed or removed in future versions.
继承: GraphElement < Container < Control < Item < Object
具有连接端口的容器,表示GraphEdit中的节点。
描述¶
GraphNode允许根据其子控件为GraphEdit图形创建具有可定制内容的节点。GraphNode派生自Container,它负责将其子级放置在屏幕上。这类似于VBoxContainer。子级反过来为GraphNode提供所谓的插槽,每个插槽的两侧都可以有一个连接端口。
每个GraphNode插槽由其索引定义,最多可以为节点提供两个端口:一个在左侧,一个在右侧。按照惯例,左侧端口也称为输入端口,右侧端口称为输出端口。每个端口都可以使用不同的类型和颜色单独启用和配置。类型是一个任意值,您可以使用自己的考虑来定义。父级GraphEdit将在每次连接和断开请求时收到此信息。
一旦您添加了至少一个子Control,就可以在检查器扩展坞中配置插槽。属性在“插槽”部分按每个插槽的索引分组。
注意:虽然GraphNode是使用插槽和插槽索引设置的,但启用的端口之间会建立连接。因此,GraphEdit使用端口索引而不是插槽索引。您可以使用get_input_port_slot()和get_output_port_slot()从端口索引中获取插槽索引。
属性¶
|
||
mouse_filter |
|
|
|
方法¶
void |
_draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual |
void |
|
void |
clear_slot(slot_index: int) |
get_input_port_color(port_idx: int) |
|
get_input_port_position(port_idx: int) |
|
get_input_port_slot(port_idx: int) |
|
get_input_port_type(port_idx: int) |
|
get_output_port_color(port_idx: int) |
|
get_output_port_position(port_idx: int) |
|
get_output_port_slot(port_idx: int) |
|
get_output_port_type(port_idx: int) |
|
get_slot_color_left(slot_index: int) const |
|
get_slot_color_right(slot_index: int) const |
|
get_slot_custom_icon_left(slot_index: int) const |
|
get_slot_custom_icon_right(slot_index: int) const |
|
get_slot_type_left(slot_index: int) const |
|
get_slot_type_right(slot_index: int) const |
|
is_slot_draw_stylebox(slot_index: int) const |
|
is_slot_enabled_left(slot_index: int) const |
|
is_slot_enabled_right(slot_index: int) const |
|
void |
set_slot(slot_index: int, enable_left_port: bool, type_left: int, color_left: Color, enable_right_port: bool, type_right: int, color_right: Color, custom_icon_left: Texture2D = null, custom_icon_right: Texture2D = null, draw_stylebox: bool = true) |
void |
set_slot_color_left(slot_index: int, color: Color) |
void |
set_slot_color_right(slot_index: int, color: Color) |
void |
set_slot_custom_icon_left(slot_index: int, custom_icon: Texture2D) |
void |
set_slot_custom_icon_right(slot_index: int, custom_icon: Texture2D) |
void |
set_slot_draw_stylebox(slot_index: int, enable: bool) |
void |
set_slot_enabled_left(slot_index: int, enable: bool) |
void |
set_slot_enabled_right(slot_index: int, enable: bool) |
void |
set_slot_type_left(slot_index: int, type: int) |
void |
set_slot_type_right(slot_index: int, type: int) |
主题属性¶
|
||
|
||
|
||
信号¶
slot_updated(slot_index: int) 🔗
当任何GraphNode的插槽更新时发出。
属性说明¶
bool ignore_invalid_connection_type = false 🔗
如果true,您可以连接不同类型的端口,即使父GraphEdit中未明确允许连接。
GraphNode标题栏中显示的文本。
方法说明¶
void _draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual 🔗
void clear_all_slots() 🔗
禁用GraphNode的所有插槽。这将从GraphNode中删除所有输入/输出端口。
void clear_slot(slot_index: int) 🔗
禁用具有给定slot_index的插槽。这将从GraphNode中删除相应的输入和输出端口。
Color get_input_port_color(port_idx: int) 🔗
使用给定的port_idx返回输入端口的Color。
返回具有启用输入端口的插槽数。
Vector2 get_input_port_position(port_idx: int) 🔗
使用给定的port_idx返回输入端口的位置。
int get_input_port_slot(port_idx: int) 🔗
使用给定的port_idx返回输入端口的相应插槽索引。
int get_input_port_type(port_idx: int) 🔗
使用给定的port_idx返回输入端口的类型。
Color get_output_port_color(port_idx: int) 🔗
使用给定的port_idx返回输出端口的Color。
返回具有启用输出端口的插槽数。
Vector2 get_output_port_position(port_idx: int) 🔗
使用给定的port_idx返回输出端口的位置。
int get_output_port_slot(port_idx: int) 🔗
使用给定的port_idx返回输出端口的相应槽索引。
int get_output_port_type(port_idx: int) 🔗
返回具有给定port_idx的输出端口的类型。
Color get_slot_color_left(slot_index: int) const 🔗
使用给定的slot_index返回插槽的左(输入)Color。
Color get_slot_color_right(slot_index: int) const 🔗
使用给定的slot_index返回插槽的右(输出)Color。
Texture2D get_slot_custom_icon_left(slot_index: int) const 🔗
使用给定的slot_index返回插槽的左(输入)自定义Texture2D。
Texture2D get_slot_custom_icon_right(slot_index: int) const 🔗
使用给定的slot_index返回插槽的右(输出)自定义Texture2D。
int get_slot_type_left(slot_index: int) const 🔗
返回具有给定slot_index的插槽的左(输入)类型。
int get_slot_type_right(slot_index: int) const 🔗
使用给定的slot_index返回插槽的正确(输出)类型。
HBoxContainer get_titlebar_hbox() 🔗
返回用于标题栏的HBoxContainer,仅包含默认显示标题的Label。这可用于向标题栏添加自定义控件,例如选项或关闭按钮。
bool is_slot_draw_stylebox(slot_index: int) const 🔗
如果绘制了具有给定slot_index的插槽的背景StyleBox,则返回true。
bool is_slot_enabled_left(slot_index: int) const 🔗
如果启用了具有给定slot_index的插槽的左(输入)侧,则返回true。
bool is_slot_enabled_right(slot_index: int) const 🔗
如果启用了具有给定slot_index的插槽的右(输出)侧,则返回true。
void set_slot(slot_index: int, enable_left_port: bool, type_left: int, color_left: Color, enable_right_port: bool, type_right: int, color_right: Color, custom_icon_left: Texture2D = null, custom_icon_right: Texture2D = null, draw_stylebox: bool = true) 🔗
使用给定的slot_index设置插槽的属性。
如果enable_left_port/enable_right_port为true,则会出现一个端口,插槽将能够从这一侧连接。
使用type_left/type_right,可以为每个端口分配任意类型。如果两个端口共享相同的类型,或者如果父GraphEdit中允许它们类型之间的连接,则可以连接两个端口(参见GraphEdit.add_valid_connection_type())。请记住,GraphEdit在接受连接方面拥有最终决定权。类型兼容性只是允许发出GraphEdit.connection_request信号。
可以使用color_left/color_right和custom_icon_left/custom_icon_right进一步自定义端口。颜色参数为图标添加色调。自定义图标可用于覆盖默认端口点。
此外,draw_stylebox可用于启用或禁用为每个插槽绘制背景样式框。请参阅slot。
也可以使用set_slot_*方法之一设置单个属性。
注意:此方法仅设置插槽的属性。要创建插槽本身,请将Control派生的子级添加到GraphNode。
void set_slot_color_left(slot_index: int, color: Color) 🔗
使用给定的slot_index将插槽左侧(输入)的Color设置为color。
void set_slot_color_right(slot_index: int, color: Color) 🔗
使用给定的slot_index将插槽右侧(输出)的Color设置为color。
void set_slot_custom_icon_left(slot_index: int, custom_icon: Texture2D) 🔗
使用给定的slot_index将插槽左侧(输入)的自定义Texture2D设置为custom_icon。
void set_slot_custom_icon_right(slot_index: int, custom_icon: Texture2D) 🔗
使用给定的slot_index将插槽右侧(输出)的自定义Texture2D设置为custom_icon。
void set_slot_draw_stylebox(slot_index: int, enable: bool) 🔗
使用给定的slot_index切换插槽的背景StyleBox。
void set_slot_enabled_left(slot_index: int, enable: bool) 🔗
使用给定的slot_index切换插槽的左侧(输入)。如果enable为true,左侧将出现一个端口,插槽将能够从这一侧连接。
void set_slot_enabled_right(slot_index: int, enable: bool) 🔗
使用给定的slot_index切换插槽的右侧(输出)。如果enable为true,则右侧将出现一个端口,插槽将能够从这一侧连接。
void set_slot_type_left(slot_index: int, type: int) 🔗
将具有给定slot_index的插槽的左(输入)类型设置为type。如果值为负数,则不允许通过用户输入创建所有连接。
void set_slot_type_right(slot_index: int, type: int) 🔗
将具有给定slot_index的插槽的正确(输出)类型设置为type。如果值为负数,则不允许通过用户输入创建所有连接。
主题属性说明¶
Color resizer_color = Color(0.875, 0.875, 0.875, 1) 🔗
应用于大小调整图标的颜色调制。
端口的水平偏移量。
端口之间的垂直距离。
用于表示端口的图标。
GraphNode插槽区域的默认背景。
选择时用于插槽区域的StyleBox。
用于GraphNode的每个插槽的StyleBox。
用于GraphNode标题栏的StyleBox。
选择GraphNode时用于标题栏的StyleBox。