CommandData

CommandData Class

Command events are generated by the client when input events occur.

Syntax

[Sansar.Script.Interface]
public class CommandData : Sansar.Script.EventData

Remarks

Command Default Key Binding
PrimaryAction F
SecondaryAction R
Modifier Shift
Action1 to Action0 Number keys 1 to 0
Confirm Enter
Cancel Escape
SelectLeft Left arrow
SelectRight Right arrow
SelectUp Up arrow
SelectDown Down arrow
Keypad0 to Keypad9 Numberpad keys 0 to 9
KeypadEnter Numberpad Enter

An example script for handling client commands:

C# Example
/* This content is licensed under the terms of the Creative Commons Attribution 4.0 International License.
 * When using this content, you must:
 * �    Acknowledge that the content is from the Sansar Knowledge Base.
 * �    Include our copyright notice: "� 2017 Linden Research, Inc."
 * �    Indicate that the content is licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
 * �    Include the URL for, or link to, the license summary at https://creativecommons.org/licenses/by-sa/4.0/deed.hi (and, if possible, to the complete license terms at https://creativecommons.org/licenses/by-sa/4.0/legalcode.
 * For example:
 * "This work uses content from the Sansar Knowledge Base. � 2017 Linden Research, Inc. Licensed under the Creative Commons Attribution 4.0 International License (license summary available at https://creativecommons.org/licenses/by/4.0/ and complete license terms available at https://creativecommons.org/licenses/by/4.0/legalcode)."
 */

using Sansar.Script;
using Sansar.Simulation;

public class CommandExample : SceneObjectScript
{
    #region ScriptParameters
    [Tooltip(@"The command to enable listening for the Action Command. Default: Confirm (Enter)")]
    [DefaultValue("Confirm")]
    [DisplayName("Subscribe Command")]
    public readonly string SubscribeCommand;

    [Tooltip(@"The command to disable listening for the Action Command. Default: Cancel (Escape)")]
    [DefaultValue("Cancel")]
    [DisplayName("Unsubscribe Command")]
    public readonly string UnsubscribeCommand;

    [Tooltip(@"If the command has been subscribed to by the 'Subscribe Command', this will log the action to the script console.")]
    [DefaultValue("Trigger")]
    [DisplayName("Action Command")]
    public readonly string ActionCommand;
    #endregion ScriptParameters

    public override void Init()
    {
    // Subscribe to new user events;
    ScenePrivate.User.Subscribe(User.AddUser, NewUser);
    }

    IEventSubscription subscription = null;

    void NewUser(UserData newUser)
    {
        Client client = ScenePrivate.FindAgent(newUser.User).Client;

        // CommandReceived will be called every time the command it triggered on the client
        // CommandCanceled will be called if the subscription fails
        if (SubscribeCommand != "")
        {
            client.SubscribeToCommand(SubscribeCommand, CommandAction.Pressed, (data) =>
            {
                if (subscription == null)
                {
                    Log.Write(GetType().Name, $"[{SubscribeCommand}] Subscribing to {ActionCommand}.");
                    subscription = client.SubscribeToCommand(ActionCommand, CommandAction.All, CommandReceived, CommandCanceled);
                }
            }, CommandCanceled);
        }

        if (UnsubscribeCommand != "")
        {
            client.SubscribeToCommand(UnsubscribeCommand, CommandAction.Pressed, (data) =>
            {
                if (subscription != null)
                {
                    Log.Write(GetType().Name, $"[{UnsubscribeCommand}] Unsubscribing to {ActionCommand}.");
                    subscription.Unsubscribe();
                    subscription = null;
                }
            }, CommandCanceled);
        }
    }

    void CommandReceived(CommandData command)
    {
        Log.Write(GetType().Name, $"Received command {command.Command}: {command.Action}. Targeting Info: {command.TargetingComponent}, Origin:{command.TargetingOrigin}, Position:{command.TargetingPosition}, Normal{command.TargetingNormal}");
    }

    void CommandCanceled(CancelData data)
    {
        Log.Write(GetType().Name, "Subscription canceled: "+data.Message);
    }

}

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

Members

See Also: Inherited members from Sansar.Script.EventData.

Public Properties

[read-only]
 
Action CommandAction . The action which occurred.
[read-only]
 
CameraControlMode CameraControlMode .
[read-only]
 
Command string . The command which occurred.
[read-only]
 
ControlPoint ControlPointType .
[read-only]
 
MouseLookMode bool .
[read-only]
 
SessionId Sansar.Script.SessionId . The client which generated the event.
[read-only]
 
SimulationFrame ulong .
[read-only]
 
TargetingComponent Sansar.Script.ComponentId .
[read-only]
 
TargetingNormal Sansar.Vector .
[read-only]
 
TargetingOrigin Sansar.Vector .
[read-only]
 
TargetingPosition Sansar.Vector .

Public Methods

override
ToString () : string
A string representation of this object.
override
ToString () : string
Generates a string representation of the EventData. (Inherited from Sansar.Script.EventData.)

Member Details

Action Property

The action which occurred.

Syntax

[get: Sansar.Script.Interface]
public CommandAction Action { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

CameraControlMode Property

 

Syntax

[get: Sansar.Script.Interface]
public CameraControlMode CameraControlMode { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

Command Property

The command which occurred.

Syntax

[get: Sansar.Script.Interface]
public string Command { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

ControlPoint Property

 

Syntax

[get: Sansar.Script.Interface]
public ControlPointType ControlPoint { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

MouseLookMode Property

 

Syntax

[get: Sansar.Script.Interface]
public bool MouseLookMode { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

SessionId Property

The client which generated the event.

Syntax

[get: Sansar.Script.Interface]
public Sansar.Script.SessionId SessionId { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

SimulationFrame Property

 

Syntax

[get: Sansar.Script.Interface]
public ulong SimulationFrame { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

TargetingComponent Property

 

Syntax

[get: Sansar.Script.Interface]
public Sansar.Script.ComponentId TargetingComponent { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

TargetingNormal Property

 

Syntax

[get: Sansar.Script.Interface]
public Sansar.Vector TargetingNormal { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

TargetingOrigin Property

 

Syntax

[get: Sansar.Script.Interface]
public Sansar.Vector TargetingOrigin { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

TargetingPosition Property

 

Syntax

[get: Sansar.Script.Interface]
public Sansar.Vector TargetingPosition { get; }

Value

Remarks

 

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.0.0

ToString Method

A string representation of this object.

Syntax

[Sansar.Script.Interface]
public override string ToString ()

Returns

A string representation of this object.

Remarks

The format of this string may change between releases.

Requirements

Namespace: Sansar.Simulation
Assembly: Sansar.Simulation (in Sansar.Simulation.dll)
Assembly Versions: 1.1.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.