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.

GraphNode

Успадковує: GraphElement < Container < Control < CanvasItem < Node < Object

Контейнер із портами підключення, що представляє вузол у GraphEdit.

Опис

GraphNode дозволяє створювати вузли для графіка GraphEdit із настроюваним вмістом на основі дочірніх елементів керування. GraphNode походить від Container і відповідає за розміщення своїх дочірніх елементів на екрані. Це працює подібно до VBoxContainer. Діти, у свою чергу, надають GraphNode так звані слоти, кожен з яких може мати порт підключення з будь-якого боку.

Кожен слот GraphNode визначається своїм індексом і може надати вузлу до двох портів: один ліворуч і один праворуч. За домовленістю лівий порт також називають вхідним портом, а правий — вихідним портом. Кожен порт можна ввімкнути та налаштувати окремо, використовуючи різний тип і колір. Тип — це довільне значення, яке ви можете визначити, виходячи з власних міркувань. Батьківський GraphEdit отримуватиме цю інформацію під час кожного запиту на підключення та відключення.

Слоти можна налаштувати в док-станції Inspector, додавши принаймні одну дочірню Control. Властивості згруповано за індексом кожного слота в розділі «Слот».

**Примітка: ** Хоча 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 🔗

Визначає, як можна фокусувати слоти з’єднань.

  • Якщо встановлено значення 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, дії введення слотів увімкнені лише тоді, коли активний зчитувач з екрана.


String title = "" 🔗

  • void set_title(value: String)

  • String get_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 🔗

Повертаємо лівий (вхідний) Клор слота з наданою 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, якщо справа (вихід) сторона слота з вказаною слот_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 можна використовувати, щоб увімкнути або вимкнути малювання фонового поля стилів для кожного слота. Перегляньте 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, коли його вибрано.