GraphNode
Наследует: GraphElement < Container < Control < CanvasItem < Node < Object
Контейнер с портами подключения, представляющий узел в GraphEdit.
Описание
GraphNode позволяет создавать узлы для графика GraphEdit с настраиваемым содержимым на основе его дочерних элементов управления. GraphNode является производным от Container и отвечает за размещение своих дочерних элементов на экране. Это работает аналогично VBoxContainer. Дочерние элементы, в свою очередь, предоставляют GraphNode так называемые слоты, каждый из которых может иметь порт подключения с любой стороны.
Каждый слот GraphNode определяется своим индексом и может предоставлять узлу до двух портов: один слева и один справа. По соглашению левый порт также называется входным портом, а правый порт называется выходным портом. Каждый порт можно включить и настроить индивидуально, используя разные типы и цвета. Тип — это произвольное значение, которое вы можете определить, используя собственные соображения. Родительский GraphEdit будет получать эту информацию при каждом запросе на подключение и отключение.
Слоты можно настроить в доке инспектора, как только вы добавите хотя бы один дочерний Control. Свойства сгруппированы по индексу каждого слота в разделе «Slot».
Примечание: Хотя GraphNode настроен с использованием слотов и индексов слотов, соединения устанавливаются между портами, которые включены. Из-за этого GraphEdit использует индекс порта, а не индекс слота. Вы можете использовать get_input_port_slot() и get_output_port_slot(), чтобы получить индекс слота из индекса порта.
Свойства
focus_mode |
|
|
|
||
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_metadata_left(slot_index: int) const |
|
get_slot_metadata_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_metadata_left(slot_index: int, value: Variant) |
void |
set_slot_metadata_right(slot_index: int, value: Variant) |
void |
set_slot_type_left(slot_index: int, type: int) |
void |
set_slot_type_right(slot_index: int, type: int) |
Свойства темы
|
||
|
||
|
||
Сигналы
slot_sizes_changed() 🔗
Генерируется, когда размер любого слота мог измениться.
slot_updated(slot_index: int) 🔗
Генерируется при обновлении любого слота GraphNode.
Описания свойств
bool ignore_invalid_connection_type = false 🔗
Если true, вы можете подключить порты с разными типами, даже если подключение не было явно разрешено в родительском GraphEdit.
FocusMode slots_focus_mode = 3 🔗
Определяет, как можно фокусировать слоты подключения.
Если установлено значение Control.FOCUS_CLICK, соединения можно устанавливать только с помощью мыши.
Если установлено значение Control.FOCUS_ALL, слоты также можно фокусировать с помощью действий ввода ProjectSettings.input/ui_up и ProjectSettings.input/ui_down, а также подключать с помощью действий ввода ProjectSettings.input/ui_left и ProjectSettings.input/ui_right.
Если установлено значение Control.FOCUS_ACCESSIBILITY, действия ввода слотов доступны только при активном средстве чтения с экрана.
Текст, отображаемый в строке заголовка GraphNode.
Описания метода
void _draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual 🔗
There is currently no description for this method. Please help us by contributing one!
void clear_all_slots() 🔗
Отключает все слоты GraphNode. Это удалит все порты ввода/вывода из GraphNode.
void clear_slot(slot_index: int) 🔗
Отключает слот с заданным slot_index. Это удалит соответствующий входной и выходной порт из GraphNode.
Color get_input_port_color(port_idx: int) 🔗
Возвращает Color входного порта с заданным port_idx.
Возвращает количество слотов с включенным входным портом.
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) 🔗
Возвращает Color выходного порта с заданным port_idx.
Возвращает количество слотов с включенным выходным портом.
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 🔗
Возвращает левый (входной) Color слота с заданным slot_index.
Color get_slot_color_right(slot_index: int) const 🔗
Возвращает правый (выходной) Color слота с заданным slot_index.
Texture2D get_slot_custom_icon_left(slot_index: int) const 🔗
Возвращает левую (входную) пользовательскую Texture2D слота с заданным slot_index.
Texture2D get_slot_custom_icon_right(slot_index: int) const 🔗
Возвращает правую (выходную) пользовательскую Texture2D слота с заданным slot_index.
Variant get_slot_metadata_left(slot_index: int) const 🔗
Возвращает левые (входные) метаданные слота с заданным slot_index.
Variant get_slot_metadata_right(slot_index: int) const 🔗
Возвращает правильные (выходные) метаданные слота с заданным slot_index.
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 🔗
Возвращает true, если отрисовывается фон StyleBox слота с заданным slot_index.
bool is_slot_enabled_left(slot_index: int) const 🔗
Возвращает true, если включена левая (входная) сторона слота с заданным slot_index.
bool is_slot_enabled_right(slot_index: int) const 🔗
Возвращает true, если правая (выходная) сторона слота с заданным slot_index включена.
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 может использоваться для включения или отключения рисования фонового stylebox для каждого слота. См. slot.
Отдельные свойства также можно задать с помощью одного из методов set_slot_*.
Примечание: Этот метод задает только свойства слота. Чтобы создать сам слот, добавьте дочерний элемент, полученный от Control, к GraphNode.
void set_slot_color_left(slot_index: int, color: Color) 🔗
Устанавливает Color левой (входной) стороны слота с заданным slot_index на color.
void set_slot_color_right(slot_index: int, color: Color) 🔗
Устанавливает Color правой (выходной) стороны слота с заданным slot_index на color.
void set_slot_custom_icon_left(slot_index: int, custom_icon: Texture2D) 🔗
Устанавливает пользовательскую Texture2D левой (входной) стороны слота с заданным slot_index на custom_icon.
void set_slot_custom_icon_right(slot_index: int, custom_icon: Texture2D) 🔗
Устанавливает пользовательскую Texture2D правой (выходной) стороны слота с заданным slot_index на custom_icon.
void set_slot_draw_stylebox(slot_index: int, enable: bool) 🔗
Переключает фон StyleBox слота с заданным slot_index.
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_metadata_left(slot_index: int, value: Variant) 🔗
Устанавливает пользовательские метаданные для левой (входной) стороны слота с заданным значением slot_index равным value.
void set_slot_metadata_right(slot_index: int, value: Variant) 🔗
Устанавливает пользовательские метаданные для правой (выходной) стороны слота с заданным значением slot_index равным value.
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, используемый для области слота при выборе.
StyleBox, используемый для каждого слота GraphNode.
StyleBox используется, когда слот находится в фокусе (при использовании со вспомогательными приложениями).
StyleBox, используемый для заголовка GraphNode.
StyleBox, используемый для заголовка GraphNode, когда он выбран.