INavigateEvents

From Virtual World Web Wiki
Jump to: navigation, search

This interface describes a Layer Two extensibility point. Components can implement this interface and an instance of the implementing class will be created by MEF on startup. Navigate events fire as the Navigate instance host workflow runs. The IComponentActivity interface passed to each event allows you to pause or cancel the workflow so you can deliver UI.

See also: NavigateEventsHandler

Remarks [edit]

Methods

void EnterWorldspace(IComponentActivity context, IConnectionIdentity identity, ISecurableInfo info)
Called as the user enters logical worldspace. When a user navigates they first enter the root world (folder in the URL) then any child worlds (subfolders in the URL) and finally enter the scene and instance. If the user is already in a scene they will first "leave" the instance, then scene, and then only if necessary worlds up to the first world shared by both original and target locations.
void ExitWorldspace(IComponentActivity context, IConnectionIdentity identity, ISecurableInfo info)
Called as the user exits logical worldspace. When a user navigates they first enter the root world (folder in the URL) then any child worlds (subfolders in the URL) and finally enter the scene and instance. If the user is already in a scene they will first "leave" the instance, then scene, and then only if necessary worlds up to the first world shared by both original and target locations.
void InstanceSelect(IConnectionIdentity identity, IBuildLocationInfo targetLocation)
Called when the server is deciding which instance of a scene to send the user to. If the InstanceID on the provided targetLocation is null or invalid after this call, the service provider will use normal selection criteria to decide the ultimate instance chosen.
void NavigateBegin(IComponentActivity context, IConnectionIdentity identity, IBuildLocationInfo targetLocation)
Called at the beginning of the navigate process. You can modify the target URI (location) here.
void NavigateEnd(IComponentActivity context, IConnectionIdentity identity, PacketErrorStatus status)
Called at the end of the navigate workflow
void NavigatePaused(IConnectionIdentity identity, WorkflowStep step)
Called to let components know that a navigate workflow was paused by a component, probably waiting for UI response from the user.
void NavigateSwitchServer(IComponentActivity context, IConnectionIdentity identity)
Called if we are about to redirect a user to another instance host on this network. This generally happens if the user is reconnecting, moving to a specific instance (dimension), or joining someone to do editing work.
void PermissionCheck(IComponentActivity context, IConnectionIdentity identity, ILocationInfo targetLocation)
Called so components can check the user's permission to enter the target scene. You can check group memberships (entities) on the ConnectionIdentity, or you can obtain an IVirtualIdentity that represents the user hypothetically at the target location by calling IPermissionSystem.GetVirtualIdentity() and use it to test for area permissions at the target.