HEGoAPI

Inherits: Object

Singleton entry point for HEGo session management, task scheduling, and HDA discovery.

Description

This class owns the internal HEGoSessionManager and task scheduler, initializes the Houdini API platform layer, and exposes session and task controls to scripts.

The singleton is created during module initialization and is intended to be reused for the whole runtime.

All HEGo node methods that call Houdini Engine submit work through the task scheduler and return HEGoTask objects. Use the scheduler query methods on this class to inspect queued, running, and completed tasks.

It also stores hego/houdini_installation_path in Godot project settings. That path is used when filtering built-in Houdini libraries from get_hda_libraries().

Methods

void

clear_completed_task_history()

Array

get_completed_task_history()

HEGoTask

get_current_task()

Dictionary

get_hda_libraries()

String

get_houdini_installation_path() const

Array

get_pending_tasks()

HEGoAPI

get_singleton() static

int

get_task_pending_count()

bool

is_session_active()

void

set_houdini_installation_path(path: String)

bool

start_session(connection_type: int, connection_data: String)

bool

stop_session()

HEGoTask

submit_task(task: HEGoTask)


Method Descriptions

void clear_completed_task_history() 🔗

Clears the completed task history ring buffer.


Array get_completed_task_history() 🔗

Returns an Array of HEGoTask objects that have finished executing (either HEGoTask.COMPLETED or HEGoTask.FAILED).

The history is stored in a ring buffer capped at 64 entries. Newest entries are at the front of the array.


HEGoTask get_current_task() 🔗

Returns the HEGoTask currently being executed on the background worker thread, or null if the scheduler is idle.


Dictionary get_hda_libraries() 🔗

Returns metadata for currently loaded non-built-in HDA libraries.

The dictionary is keyed by library name when available (otherwise by library id as a string).

Each value contains:

  • id: HAPI asset library id.

  • file_path: source library path.

  • name: basename without extension.

  • asset_count: number of available assets in the library.

  • assets: PackedStringArray of operator names.

Returns an empty dictionary if no session is active, if no libraries are loaded, or if querying HAPI fails.


String get_houdini_installation_path() const 🔗

Returns the configured Houdini installation path from project settings.


Array get_pending_tasks() 🔗

Returns an Array of HEGoTask objects waiting in the scheduler queue (status HEGoTask.PENDING).

Does not include the currently running task. See get_current_task() for that.


HEGoAPI get_singleton() static 🔗

Returns the global HEGoAPI singleton instance created during module initialization.


int get_task_pending_count() 🔗

Returns the number of tasks waiting in the scheduler queue.

This count does not include the currently running task.


bool is_session_active() 🔗

Returns true when the Houdini Engine session is currently active.


void set_houdini_installation_path(path: String) 🔗

Updates the hego/houdini_installation_path project setting.


bool start_session(connection_type: int, connection_data: String) 🔗

Starts a Houdini Engine session and initializes HAPI.

connection_type maps to HEGoSessionManager::SessionType:

1 = InProcess
2 = NewNamedPipe
3 = NewTCPSocket
4 = ExistingNamedPipe
5 = ExistingTCPSocket
6 = ExistingSharedMemory

connection_data is transport-specific (for example named pipe string or socket endpoint data).

Returns true on successful session startup and initialization.


bool stop_session() 🔗

Stops the task scheduler and then closes the active Houdini Engine session, releasing all session resources.

Any pending tasks in the queue are discarded. The currently running task, if any, is allowed to finish before the session is closed.

Returns true when shutdown succeeds.


HEGoTask submit_task(task: HEGoTask) 🔗

Submits an HEGoTask to the scheduler queue for execution on the background worker thread.

This is called internally by HEGo node methods. Direct use is rarely needed unless you are building custom task pipelines.

Returns the same HEGoTask that was passed in, for convenience.


Class Registration

  • Kind: Concrete