SDKInstanceBase interface

Ashley's avatar
Medal
Construct Team Founder
Published 15 May, 2018
529 words
~2-4 mins

The SDKInstanceBase interface is used as the base class for runtime instances in the SDK. For "world" type plugins, instances instead derive from SDKWorldInstanceBase which itself derives from SDKInstanceBase.

SDKInstanceBase cannot be directly constructed; it should only be used as a base class.

Properties

this._inst

Reference to the Instance representing this instance in the runtime. This allows access to Construct's built-in runtime features for instances.

this._runtime

Reference to the associated Runtime that controls execution of the project.

this._objectClass

Reference to the ObjectClass representing the object type that this instance belongs to.

this._sdkType

Reference to your addon's SDK type class, which derives from SDKTypeBase.

Methods

Release()

Optional override for when an instance is released.

GetInstance()

Returns this._inst publicly.

GetRuntime()

Returns this._runtime publicly.

GetObjectClass()

Returns this._objectClass publicly.

GetSdkType()

Returns this._sdkType publicly.

GetPlugin()

Returns your addon's SDK plugin class, which derives from SDKPluginBase.

Trigger(method)

Fire a trigger condition. The condition must be declared as a trigger in aces.json. Pass a full reference to the condition method, e.g. this.Trigger(C3.Plugins.Sprite.Cnds.OnAnimFinished).

AddDOMMessageHandler(handler, callback)

Add a callback to be run to handle a message posted from a DOM-side script. The handler is a string identifier. The callback receives the posted data as an argument. Note that if the caller in the DOM-side script originally used the PostToRuntimeAsync method, the callback may be an async function, and the return value is posted back to the DOM-side script.

PostToDOM(handler, data)

PostToDOMAsync(handler, data)

Post a message to a DOM-side script. The handler is a string identifier. The data must be structurally clonable (since it is posted down a MessageChannel).

The async method returns a promise that resolves with the DOM-side callback's return value. The non-async method does not return a value and the DOM-side callback's return value is discarded (i.e. a "fire and forget" message).

_StartTicking()

_StartTicking2()

IsTicking()

IsTicking2()

_StopTicking()

_StopTicking2()

Utility methods to start or stop the runtime calling the Tick() or Tick2() methods of your instance every tick, and also to check whether ticking is active. It is recommended to stop ticking whenever the tick method is no longer needed to reduce the performance overhead of ticking. Redundant calls to start or stop ticking are ignored. The first call always takes effect (i.e. calls do not stack - if you make 3 calls to start ticking then 1 call to stop ticking, ticking is stopped).

Tick()

Optional override that is called every tick just before events are run after _StartTicking() has been called.

Tick2()

Optional override that is called every tick just after events are run after _StartTicking2() has been called.

GetDebuggerProperties()

Override to return properties to display in the debugger. For more information see runtime scripts.

SaveToJson()

Optional override to return a JSON object that represents the state of the instance for savegames.

LoadFromJson(o)

Optional override accepting a JSON object returned by a prior call to SaveToJson() that represents the state of an instance to load, for savegames.

CallAction(actMethod, ...args)

Convenience method to run an action method with the given parameters. For example: this.CallAction(C3.Plugins.MyAddon.Acts.MyAction, "foo", "bar")

CallExpression(expMethod, ...args)

Convenience method to run an expression method with the given parameters. Returns the value returned by the expression. For example: const value = this.CallExpression(C3.Plugins.MyAddon.Exps.MyExpression)