com.threerings.whirled.zone.server
Interface ZoneManager


public interface ZoneManager

A zone is a collection of scenes organized into a connected group. A user can wander around within a zone, moving from scene to scene via the standard mechanisms. To move between zones, they must use a special mechanism (like at the dock, they can move from an island zone into their ship zone; or they can move from an island zone into their house zone). A zone provides scene summary information that can be used to display a map of the zone to the client.


Nested Class Summary
static interface ZoneManager.ResolutionListener
          Used to notify requesters when an asynchronous zone load has completed (successfully or not).
 
Method Summary
 void bodyDidEnterZone(BodyObject body, int zoneId)
          Called when a body has been granted access to a zone.
 String ratifyBodyEntry(BodyObject body, int zoneId)
          Called when a body has requested to enter a zone.
 String ratifyBodyExit(BodyObject body)
          Called when a body has requested to leave a zone.
 void resolveZone(int zoneId, ZoneManager.ResolutionListener listener)
          Resolves and delivers the scene summary information for the requested zone.
 

Method Detail

resolveZone

void resolveZone(int zoneId,
                 ZoneManager.ResolutionListener listener)
Resolves and delivers the scene summary information for the requested zone. Zone resolution is an asynchronous process, which necessitates this callback-style interface.

Parameters:
zoneId - the qualified zone id of the zone to resolve.
listener - the listener that should be notified when the zone is successfully resolved or is known to have failed to resolve.

ratifyBodyExit

String ratifyBodyExit(BodyObject body)
Called when a body has requested to leave a zone. The zone manager may return null to indicate that the body is allowed to leave the current zone or a string error code indicating the reason for denial of access (which will be propagated back to the requesting client).

Parameters:
body - the body object of the user that desires to depart their current zone (which can be obtained by casting the BodyObject to a ZonedBodyObject).

ratifyBodyEntry

String ratifyBodyEntry(BodyObject body,
                       int zoneId)
Called when a body has requested to enter a zone. The zone manager may return null to indicate that the body is allowed access to the zone or a string error code indicating the reason for denial of access (which will be propagated back to the requesting client). This method is called after the zone is resolved so that the zone manager may complete the ratification process without blocking (which it must do).

Parameters:
body - the body object of the user that desires access to the specified zone.
zoneId - the id of the zone to which the user desires access.

bodyDidEnterZone

void bodyDidEnterZone(BodyObject body,
                      int zoneId)
Called when a body has been granted access to a zone. This method must not block.

Parameters:
body - the body object of the user that was just granted access to a zone.
zoneId - the id of the zone to which they were granted access.