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(), чтобы получить индекс слота из индекса порта.

Свойства

FocusMode

focus_mode

3 (overrides Control)

bool

ignore_invalid_connection_type

false

MouseFilter

mouse_filter

0 (overrides Control)

FocusMode

slots_focus_mode

3

String

title

""

Методы

void

_draw_port(slot_index: int, position: Vector2i, left: bool, color: Color) virtual

void

clear_all_slots()

void

clear_slot(slot_index: int)

Color

get_input_port_color(port_idx: int)

int

get_input_port_count()

Vector2

get_input_port_position(port_idx: int)

int

get_input_port_slot(port_idx: int)

int

get_input_port_type(port_idx: int)

Color

get_output_port_color(port_idx: int)

int

get_output_port_count()

Vector2

get_output_port_position(port_idx: int)

int

get_output_port_slot(port_idx: int)

int

get_output_port_type(port_idx: int)

Color

get_slot_color_left(slot_index: int) const

Color

get_slot_color_right(slot_index: int) const

Texture2D

get_slot_custom_icon_left(slot_index: int) const

Texture2D

get_slot_custom_icon_right(slot_index: int) const

Variant

get_slot_metadata_left(slot_index: int) const

Variant

get_slot_metadata_right(slot_index: int) const

int

get_slot_type_left(slot_index: int) const

int

get_slot_type_right(slot_index: int) const

HBoxContainer

get_titlebar_hbox()

bool

is_slot_draw_stylebox(slot_index: int) const

bool

is_slot_enabled_left(slot_index: int) const

bool

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)

Свойства темы

Color

resizer_color

Color(0.875, 0.875, 0.875, 1)

int

port_h_offset

0

int

separation

2

Texture2D

port

StyleBox

panel

StyleBox

panel_focus

StyleBox

panel_selected

StyleBox

slot

StyleBox

slot_selected

StyleBox

titlebar

StyleBox

titlebar_selected


Сигналы

slot_sizes_changed() 🔗

Генерируется, когда размер любого слота мог измениться.


slot_updated(slot_index: int) 🔗

Генерируется при обновлении любого слота GraphNode.


Описания свойств

bool ignore_invalid_connection_type = false 🔗

  • void set_ignore_invalid_connection_type(value: bool)

  • bool is_ignoring_valid_connection_type()

Если true, вы можете подключить порты с разными типами, даже если подключение не было явно разрешено в родительском GraphEdit.


FocusMode slots_focus_mode = 3 🔗

Определяет, как можно фокусировать слоты подключения.


String title = "" 🔗

Текст, отображаемый в строке заголовка 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.


int get_input_port_count() 🔗

Возвращает количество слотов с включенным входным портом.


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.


int get_output_port_count() 🔗

Возвращает количество слотов с включенным выходным портом.


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) 🔗

Цветовая модуляция, примененная к значку изменения размера.


int port_h_offset = 0 🔗

Горизонтальное смещение портов.


int separation = 2 🔗

Вертикальное расстояние между портами.


Texture2D port 🔗

Значок, используемый для обозначения портов.


StyleBox panel 🔗

Фон по умолчанию для области слота GraphNode.


StyleBox panel_focus 🔗

StyleBox используется, когда GraphNode находится в фокусе (при использовании со вспомогательными приложениями).


StyleBox panel_selected 🔗

StyleBox, используемый для области слота при выборе.


StyleBox slot 🔗

StyleBox, используемый для каждого слота GraphNode.


StyleBox slot_selected 🔗

StyleBox используется, когда слот находится в фокусе (при использовании со вспомогательными приложениями).


StyleBox titlebar 🔗

StyleBox, используемый для заголовка GraphNode.


StyleBox titlebar_selected 🔗

StyleBox, используемый для заголовка GraphNode, когда он выбран.