Skip to main content
Skip table of contents

novaHost - Plugin API

The Plugin Application Programming Interface (API) provides everything needed for developers to create GUI elements in Nova Host, use them to modify the pC-Nova ICD, then have the ICD data translated to CIGI packets and sent to the IG.

Additionally, several utilities have been added to abstract implementation details with the goal of keeping the focus on modifying the ICD and sending CIGI packets.

novaHostPluginApi.h

The src/novaHostPluginApi/novaHostPluginApi.h header file contains everything needed to create a Nova Host Plugin.

It defines an abstract base class that plugins inherit and implement to be loaded by Nova Host (PluginApi) and an abstract base class that the Nova Host GUI implements (GuiApi).  The Nova Host GUI passes a pointer to the GuiApi when it loads a plugin.

The source code and plugins contain thorough comments and great examples of using this API so this documentation is meant to supplement it with a brief overview of each.

PluginApi

Plugins need to inherit and implement the abstract methods in this class.

The GUI uses this interface to ask plugins for their name to display on the tab, their .ui file to load the plugin's GUI, and their SDK version to check for mismatched versions.

It will then initialize and tick the plugin using the other methods.

GuiApi

Plugins get a pointer to the GuiApi when they are created via the GetNovaHostPluginApi() export.

This pointer provides access to an abstraction of several GUI side implementation details including the following APIs.

GuiEventApi

The GuiEventApi is meant to encapsulate anything pertaining to GUI events and provides mechanisms for:

  • Showing messages and errors in the Nova Host console and Output tab.
  • Switching from Compact to Expanded View.
  • Switching to a Nova Host Expanded View tab.
  • Adding an ICD variable to the Nova Host Spy tab.

GuiInputApi

The GuiInputApi handles user input and provides interfaces for:

  • Reading the mouse position and detecting mouse button presses.
  • Detecting keyboard key presses.
  • Reading joystick axis positions and button presses.
  • Abstracting GUI elements in the .ui file to get/set them and respond to events.

GuiUtilApi

The GuiUtilApi is the catch all for several utilities including:

  • Reading settings from the INI file.
  • Caching data for use between Nova Host runs.
  • Timers.
  • Tokenizing strings.

GuiObjectApi

The GuiObjectApi provides access to a UFO like "movable object" class that is used by the Entity plugin to move entities.

It also provides access to the "stealth camera" which is also used by the Entity Plugin which allows the ownship position to be overridden and used as a camera.

GuiDataApi

The GuiDataApi encompasses interfaces pertaining to IG data including:

  • Reading CIGI Introspection returns.
  • Reading and writing the Nova Host pC-Nova ICD.
  • Reading parsed ATP position data from the DB_OVERLAY folder.






JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.