Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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, когда он выбран.