Cavrnus Unreal API - Public Core

The core header files in the Source/Public folder define the core structure and functionality of the Cavrnus Spatial Connector plugin for Unreal Engine.


General Notes:

  • The CavrnusFunctionLibrary is the primary interface for Blueprint users to interact with the plugin.

Headers

CavrnusSpatialConnector.h

  • Purpose: This file defines the ACavrnusSpatialConnector actor, which is the main entry point for the plugin's functionality.

  • Functions:

    • InitializeComponent: Called when the component is initialized, allowing for custom initialization logic..

  • Key Elements:

    • MyServer: The address of the Cavrnus server.

    • Various configuration options for authentication, space joining, avatar management, and UI elements.

CavrnusConnectorSettings.h:

  • Purpose: This file defines the UCavrnusConnectorSettings class, which stores the configuration settings for the plugin.

  • Functions:

    • PostInitProperties: Initialization function for the Connector.

    • GetRelayNetOptionalParameters: Generates a string representing the verbose parameter list for CavrnusRelayNet.

    • PostEditChangeProperty: Called when an edit is made to the settings (Available only in the editor)

  • Key Elements:

    • AutoStartConnector: Determines whether the connector should automatically start.

    • RelayNetPort, RelayNetIPAddress, RelayNetExecutableRelativeLocation: Settings for the RelayNet executable, the foundation for Cavrnus real-time collaboration.

    • RelayNetSilent, RelayNetVerboseLogging, RelayNetLogOutputToFile: Options for controlling the behavior and logging of RelayNet.

CavrnusSpatialConnectorSubSystem.h

  • Purpose: This file defines the UCavrnusSpatialConnectorSubSystem and UCavrnusSpatialConnectorSubSystemProxy classes, which manage the lifecycle and interactions with the Cavrnus Spatial Connector.

  • Key Elements:

    • UIManager: A class for managing UI widgets within the Cavrnus system.

    • Functions for authentication, space joining, and handling callbacks.

CavrnusPropertiesContainer.h:

  • Purpose: This file defines the UCavrnusPropertiesContainer component, which is attached to actors to manage property containers within the Cavrnus system. Containers are a way to uniquely identify synchronized values in the Journal of a Cavrnus Space.

  • Functions:

    • InitializeComponent: Called when the component is initialized, allowing for custom initialization logic..

  • Key Elements:

    • ContainerName: This property stores the name of the container, which can be used to identify it within the Cavrnus system.

CavrnusFunctionLibrary.h:

  • Purpose: This is the main Blueprint function library for interacting with the Cavrnus Spatial Connector. It provides a wide range of static utility functions for authentication, space management, property manipulation, permissions, user interactions, and more.

  • Key Elements:

    • Authentication functions: (AuthenticateWithPassword, AuthenticateAsGuest, etc.).

    • Space management functions: (FetchJoinableSpaces, JoinSpace, ExitSpace, etc.).

    • Property functions: (Bool, Float, String, Vector, Transform, Color).

    • Permission functions: (BindGlobalPolicy, BindSpacePolicy).

    • Spawned Object functions: (SpawnObject, DestroyObject).

    • Space User functions: (AwaitLocalUser, GetCurrentSpaceUsers, BindSpaceUsers, etc.).

    • Voice and Video functions: (SetLocalUserMutedState, FetchSavedAudioInput, UpdateAudioInput, etc.).

    • Remote Content functions: (FetchFileById, FetchAllUploadedContent, UploadContent, etc.).

    • Chat functions: (FetchFileById, FetchAllUploadedContent, UploadContent, etc.).

    • Functions for handling permissions, spawned objects, space users, voice and video, and remote content.

CavrnusFileUtilityLibrary.h:

  • Purpose: This file declares the UCavrnusFileUtilityLibrary class, a Blueprint function library that provides utility functions for file operations.

  • Key Elements:

    • OpenFileDialog: Opens a file dialog for selecting files.

    • OpenFolderDialog: Opens a folder dialog for selecting folders. 

Â