ScriptBase

Sansar.Script.ScriptBase

ScriptBase Class

Base class for all scripts, has ScriptHandle accessors and coroutine utilities.

Syntax

public abstract class ScriptBase

Remarks

This abstract class manages shared information for all script types.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Members

See Also: Inherited members from object.

Public Constructors

  Constructor

Public Properties

  Log Log . Gets the script console.
  Memory Memory . Memory information for the pool this script is in.
  Script ScriptHandle . Script handle to this script.

Public Methods

abstract
Init ()
Init() is called after all interfaces have been initialized.

Protected Methods

  StartCoroutine (Action)
Starts a coroutine on the current script.
  StartCoroutine<T> (Action<T>, T)
Starts a coroutine on the current script.
  StartCoroutine<T,T1> (Action<T, T1>, T, T1)
Starts a coroutine on the current script.
  StartCoroutine<T,T1,T2> (Action<T, T1, T2>, T, T1, T2)
Starts a coroutine on the current script.
  StartCoroutine<T,T1,T2,T3> (Action<T, T1, T2, T3>, T, T1, T2, T3)
Starts a coroutine on the current script.
  Terminate (string)
Terminates this script immediately.
  Wait (TimeSpan)
Delays execution of the current coroutine for the specified time.
  WaitFor (Action<Action<Sansar.Script.EventData>,System.Boolean>) : EventData
Use in a coroutine to pause the script until an event happens.
  WaitFor<ARG1> (Action<ARG1, Action<Sansar.Script.EventData>,System.Boolean>, ARG1) : EventData
Use in a coroutine to pause the script until an event happens.
  WaitFor<T1> (Func<T1, Action<Sansar.Script.OperationCompleteEvent>,System.UInt64>, T1) : OperationCompleteEvent
Use in a coroutine to pause the script until an event happens.
  WaitFor<ARG1,ARG2> (Action<ARG1, ARG2, Action<Sansar.Script.EventData>,System.Boolean>, ARG1, ARG2) : EventData
Use in a coroutine to pause the script until an event happens.
  WaitFor<T1,T2> (Func<T1, T2, Action<Sansar.Script.OperationCompleteEvent>,System.UInt64>, T1, T2) : OperationCompleteEvent
Use in a coroutine to pause the script until an event happens.
  WaitFor<ARG1,ARG2,ARG3> (Action<ARG1, ARG2, ARG3, Action<Sansar.Script.EventData>,System.Boolean>, ARG1, ARG2, ARG3) : EventData
Use in a coroutine to pause the script until an event happens.
  WaitFor<T1,T2,T3> (Func<T1, T2, T3, Action<Sansar.Script.OperationCompleteEvent>,System.UInt64>, T1, T2, T3) : OperationCompleteEvent
Use in a coroutine to pause the script until an event happens.
  WaitFor<ARG1,ARG2,ARG3,ARG4> (Action<ARG1, ARG2, ARG3, ARG4, Action<Sansar.Script.EventData>,System.Boolean>, ARG1, ARG2, ARG3, ARG4) : EventData
Use in a coroutine to pause the script until an event happens.
  WaitFor<T1,T2,T3,T4> (Func<T1, T2, T3, T4, Action<Sansar.Script.OperationCompleteEvent>,System.UInt64>, T1, T2, T3, T4) : OperationCompleteEvent
Use in a coroutine to pause the script until an event happens.
  WaitFor<ARG1,ARG2,ARG3,ARG4,ARG5> (Action<ARG1, ARG2, ARG3, ARG4, ARG5, Action<Sansar.Script.EventData>,System.Boolean>, ARG1, ARG2, ARG3, ARG4, ARG5) : EventData
Use in a coroutine to pause the script until an event happens.

Member Details

ScriptBase Constructor

Constructor

Syntax

public ScriptBase ()

Remarks

Initializes a new instance of the ScriptBase class.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Init Method

Init() is called after all interfaces have been initialized.

Syntax

public abstract void Init ()

Remarks

Override Init() to set up script subscriptions and callbacks. Any members set before Init is called (such as in a script constructor) may be overwritten before Init is called.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Log Property

Gets the script console.

Syntax

public Log Log { protected get; set; }

Value

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Memory Property

Memory information for the pool this script is in.

Syntax

public Memory Memory { protected get; set; }

Value

Remarks

Scripts are pooled by their owner and share memory. Use this object to get events on nearing memory limits as well as get information on memory activity and use.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Script Property

Script handle to this script.

Syntax

public ScriptHandle Script { protected get; set; }

Value

An opaque type used by certain API methods.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

StartCoroutine Method

Starts a coroutine on the current script.

Syntax

protected void StartCoroutine (Action coroutine)

Parameters

coroutine
The coroutine to run.

Remarks

A coroutine can call ScriptBase.WaitFor(Func<Action<Sansar.Script.EventData>,System.UInt64>) to block while waiting for events to return.

The following three scripts acccomplish the same goal using event subscriptions and coroutines. Each script will listen for new agents to join the scene and keep track of the agents name and the time it joined. When the agent leaves, its name and the duration of its visit will be reported.

C# Example
 

Event handlers are useful when there is a well contained bit of code which can get most or all of its state from the Sansar.Script.EventData it receives. In this example, a separate data structure is needed to keep track of the name and join time for each agent since there could be multiple agents in the scene.

C# Example
 

While the amount of code is approximately the same for each, the coroutine version does not require access to any member data, simplifying the tracking by moving all the required information to stack variables.

C# Example
 

Coroutines can be mixed with event handlers. This example uses an event handler for the new user events to start a coroutine to watch for the remove user events.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

StartCoroutine<T> Generic Method

Starts a coroutine on the current script.

Syntax

protected void StartCoroutine<T> (Action<T> coroutine, T arg1)

Type Parameters

T
Type of the first parameter to pass to the coroutine when it is run. This can usually be derived from the Action.

Parameters

coroutine
The coroutine to run.
arg1
First parameter to pass to the coroutine when it is run.

Remarks

A coroutine can call ScriptBase.WaitFor(Func<Action<Sansar.Script.EventData>,System.UInt64>) to block while waiting for events to return. See ScriptBase.StartCoroutine(Action) for an extended example.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

StartCoroutine<T,T1> Generic Method

Starts a coroutine on the current script.

Syntax

protected void StartCoroutine<T, T1> (Action<T, T1> coroutine, T arg1, T1 arg2)

Type Parameters

T
Type of the first parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T1
Type of the second parameter to pass to the coroutine when it is run. This can usually be derived from the Action.

Parameters

coroutine
The coroutine to run.
arg1
First parameter to pass to the coroutine when it is run.
arg2
Second parameter to pass to the coroutine when it is run.

Remarks

A coroutine can call ScriptBase.WaitFor(Func<Action<Sansar.Script.EventData>,System.UInt64>) to block while waiting for events to return. See ScriptBase.StartCoroutine(Action) for an extended example.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

StartCoroutine<T,T1,T2> Generic Method

Starts a coroutine on the current script.

Syntax

protected void StartCoroutine<T, T1, T2> (Action<T, T1, T2> coroutine, T arg1, T1 arg2, T2 arg3)

Type Parameters

T
Type of the first parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T1
Type of the second parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T2
Type of the third parameter to pass to the coroutine when it is run. This can usually be derived from the Action.

Parameters

coroutine
The coroutine to run.
arg1
First parameter to pass to the coroutine when it is run.
arg2
Second parameter to pass to the coroutine when it is run.
arg3
Third parameter to pass to the coroutine when it is run.

Remarks

A coroutine can call ScriptBase.WaitFor(Func<Action<Sansar.Script.EventData>,System.UInt64>) to block while waiting for events to return. See ScriptBase.StartCoroutine(Action) for an extended example.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

StartCoroutine<T,T1,T2,T3> Generic Method

Starts a coroutine on the current script.

Syntax

protected void StartCoroutine<T, T1, T2, T3> (Action<T, T1, T2, T3> coroutine, T arg1, T1 arg2, T2 arg3, T3 arg4)

Type Parameters

T
Type of the first parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T1
Type of the second parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T2
Type of the third parameter to pass to the coroutine when it is run. This can usually be derived from the Action.
T3
Type of the fourth parameter to pass to the coroutine when it is run. This can usually be derived from the Action.

Parameters

coroutine
The coroutine to run.
arg1
First parameter to pass to the coroutine when it is run.
arg2
Second parameter to pass to the coroutine when it is run.
arg3
Third parameter to pass to the coroutine when it is run.
arg4
Fourth parameter to pass to the coroutine when it is run.

Remarks

A coroutine can call ScriptBase.WaitFor(Func<Action<Sansar.Script.EventData>,System.UInt64>) to block while waiting for events to return. See ScriptBase.StartCoroutine(Action) for an extended example.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Terminate Method

Terminates this script immediately.

Syntax

protected void Terminate (string message)

Parameters

message
The message to write to the log.

Remarks

This method does not return.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

Wait Method

Delays execution of the current coroutine for the specified time.

Syntax

protected void Wait (TimeSpan duration)

Parameters

duration
The length of time to wait before continuing.

Remarks

Throws Sansar.Script.CoroutineException if not called from a coroutine context.

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor Method

Use in a coroutine to pause the script until an event happens.

Syntax

Parameters

func
The event-generating API to wait for.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<ARG1> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

Type Parameters

ARG1
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
arg1
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<T1> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

Type Parameters

T1
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
t1
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<ARG1,ARG2> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

protected EventData WaitFor<ARG1, ARG2> (Action<ARG1, ARG2, Action<Sansar.Script.EventData>,System.Boolean> func, ARG1 arg1, ARG2 arg2)

Type Parameters

ARG1
The type of the argument to func.
ARG2
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
arg1
An argument to func.
arg2
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<T1,T2> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

Type Parameters

T1
The type of the argument to func.
T2
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
t1
An argument to func.
t2
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<ARG1,ARG2,ARG3> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

protected EventData WaitFor<ARG1, ARG2, ARG3> (Action<ARG1, ARG2, ARG3, Action<Sansar.Script.EventData>,System.Boolean> func, ARG1 arg1, ARG2 arg2, ARG3 arg3)

Type Parameters

ARG1
The type of the argument to func.
ARG2
The type of the argument to func.
ARG3
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
arg1
An argument to func.
arg2
An argument to func.
arg3
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<T1,T2,T3> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

Type Parameters

T1
The type of the argument to func.
T2
The type of the argument to func.
T3
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
t1
An argument to func.
t2
An argument to func.
t3
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<ARG1,ARG2,ARG3,ARG4> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

protected EventData WaitFor<ARG1, ARG2, ARG3, ARG4> (Action<ARG1, ARG2, ARG3, ARG4, Action<Sansar.Script.EventData>,System.Boolean> func, ARG1 arg1, ARG2 arg2, ARG3 arg3, ARG4 arg4)

Type Parameters

ARG1
The type of the argument to func.
ARG2
The type of the argument to func.
ARG3
The type of the argument to func.
ARG4
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
arg1
An argument to func.
arg2
An argument to func.
arg3
An argument to func.
arg4
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<T1,T2,T3,T4> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

protected OperationCompleteEvent WaitFor<T1, T2, T3, T4> (Func<T1, T2, T3, T4, Action<Sansar.Script.OperationCompleteEvent>,System.UInt64> func, T1 t1, T2 t2, T3 t3, T4 t4)

Type Parameters

T1
The type of the argument to func.
T2
The type of the argument to func.
T3
The type of the argument to func.
T4
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
t1
An argument to func.
t2
An argument to func.
t3
An argument to func.
t4
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0

WaitFor<ARG1,ARG2,ARG3,ARG4,ARG5> Generic Method

Use in a coroutine to pause the script until an event happens.

Syntax

protected EventData WaitFor<ARG1, ARG2, ARG3, ARG4, ARG5> (Action<ARG1, ARG2, ARG3, ARG4, ARG5, Action<Sansar.Script.EventData>,System.Boolean> func, ARG1 arg1, ARG2 arg2, ARG3 arg3, ARG4 arg4, ARG5 arg5)

Type Parameters

ARG1
The type of the argument to func.
ARG2
The type of the argument to func.
ARG3
The type of the argument to func.
ARG4
The type of the argument to func.
ARG5
The type of the argument to func.

Parameters

func
The event-generating API to wait for.
arg1
An argument to func.
arg2
An argument to func.
arg3
An argument to func.
arg4
An argument to func.
arg5
An argument to func.

Returns

An EventData that can be case to type corresponding to the event type of func.

Remarks

 

Requirements

Namespace: Sansar.Script
Assembly: Sansar.Script (in Sansar.Script.dll)
Assembly Versions: 1.0.0.0


Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

0 Comments

Article is closed for comments.