Description

A plugin is a 3rd-party extension which provides a set of functionalities, allowing to extend the ecosystem to the already rich set of built-in functionalities.

Plugins creators who wish to create a plugin to support teleporter, must:

ABeamer allows plugins to add the following functionality types:

To add a functionality use: pluginManager.add<functionality-type>.

In most cases, a functionality is a function that receives a set of parameters followed by args?:ABeamerArgs.
This last parameter will provide information regarding the state of the system.

Plugins should try to be independent of DOM in order to work with virtual elements such as WebGL and canvas. However, in some cases is required to work with DOM only.

 

API

 

PluginManager

public export interface

export interface PluginManager{ }

Allows 3rd-party to add easings, oscillators, paths, etc.

PluginManager.addPlugin()

public method [PluginManager]

addPlugin(pluginInfo: PluginInfo): void;

PluginManager.addEasings()

public method [PluginManager]

addEasings(easings: [string, EasingFunc][]): void;

PluginManager.addOscillators()

public method [PluginManager]

addOscillators(oscillators: [string, OscillatorFunc][]): void;

PluginManager.addPaths()

public method [PluginManager]

addPaths(paths: [string, PathFunc][]): void;

PluginManager.addTasks()

public method [PluginManager]

addTasks(tasks: [string, TaskFunc][]): void;

PluginManager.addTransitions()

public method [PluginManager]

addTransitions(transitions: [string, TransitionFunc][]): void;

PluginManager.addFlyovers()

public method [PluginManager]

addFlyovers(flyovers: [string, FlyoverFunc][]): void;

PluginManager.addFunctions()

public method [PluginManager]

addFunctions(functions: [string, ExFunction][]): void;

PluginManager.addLocalization()

public method [PluginManager]

addLocalization(localeInfo: Localization): void;
 

AnyParams

public export interface

export interface AnyParams { [key: string]: any;{ }
 

AnyParams.ABeamerArgs

public export interface [AnyParams]

export interface ABeamerArgs{ }

ABeamerArgs.story

public property [ABeamerArgs]

story?: Story;

ABeamerArgs.scene

public property [ABeamerArgs]

scene?: Scene;

ABeamerArgs.stage

public property [ABeamerArgs]

stage?: uint;

ABeamerArgs.renderNr

public property [ABeamerArgs]

renderNr?: uint;

Every time, the render is executed this value is incremented.

ABeamerArgs.user

public property [ABeamerArgs]

user?: AnyParams;

ABeamerArgs.waitMan

public property [ABeamerArgs]

waitMan?: WaitMan;

ABeamerArgs.isVerbose

public property [ABeamerArgs]

isVerbose?: boolean;

If true, the internal code or plugin should dump information using story.logFrmt.

ABeamerArgs.hasServer

public property [ABeamerArgs]

hasServer?: boolean;

True if it's running a supporting server program for frame storage.

ABeamerArgs.isTeleporting

public property [ABeamerArgs]

isTeleporting?: boolean;

ABeamerArgs.isStrict

public property [ABeamerArgs]

isStrict?: boolean;

If true, perform type checks and other restriction checks.

ABeamerArgs.vars

public property [ABeamerArgs]

vars: Vars;
 

PluginInfo

public export interface

export interface PluginInfo{ }

Information required by each plugin creator about its own plug-in.

PluginInfo.id

public property [PluginInfo]

id: string;

PluginInfo.uuid

public property [PluginInfo]

uuid: string;

PluginInfo.author

public property [PluginInfo]

author: string;

PluginInfo.email

public property [PluginInfo]

email: string;

PluginInfo.copyrights

public property [PluginInfo]

copyrights?: string;

PluginInfo.jsUrls

public property [PluginInfo]

jsUrls?: string[];

PluginInfo.cssUrls

public property [PluginInfo]

cssUrls?: string[];

PluginInfo.assetsUrls

public property [PluginInfo]

assetsUrls?: string[];

PluginInfo.telemetricUrl

public property [PluginInfo]

telemetricUrl?: string[];

PluginInfo.teleportable

public property [PluginInfo]

teleportable: boolean;