Allow customizing the ZoneMoveHandler.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@881 c613c5cb-e716-0410-b11b-feb51c14d237
This commit is contained in:
@@ -68,7 +68,7 @@ public class ZoneMoveHandler extends AbstractSceneMoveHandler
|
||||
_summary = summary;
|
||||
|
||||
// now resolve the target scene
|
||||
_screg.resolveScene(_sceneId, this);
|
||||
resolveScene();
|
||||
}
|
||||
|
||||
// from interface ZoneManager.ResolutionListener
|
||||
@@ -112,6 +112,14 @@ public class ZoneMoveHandler extends AbstractSceneMoveHandler
|
||||
_zmgr.bodyDidEnterZone(_body, _summary.zoneId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Begins the process of resolving the target scene.
|
||||
*/
|
||||
protected void resolveScene ()
|
||||
{
|
||||
_screg.resolveScene(_sceneId, this);
|
||||
}
|
||||
|
||||
protected ZoneManager _zmgr;
|
||||
protected SceneRegistry _screg;
|
||||
protected int _sceneId, _version;
|
||||
|
||||
@@ -171,8 +171,18 @@ public class ZoneRegistry
|
||||
}
|
||||
|
||||
// resolve the zone and move the user
|
||||
zmgr.resolveZone(zoneId, new ZoneMoveHandler(_locman, zmgr, _screg, (BodyObject)caller,
|
||||
sceneId, sceneVer, listener));
|
||||
zmgr.resolveZone(zoneId, createZoneMoveHandler(
|
||||
zmgr, (BodyObject)caller, sceneId, sceneVer, listener));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a handler to handle the described zone movement.
|
||||
*/
|
||||
protected ZoneMoveHandler createZoneMoveHandler (
|
||||
ZoneManager zmgr, BodyObject body, int sceneId, int sceneVer,
|
||||
ZoneService.ZoneMoveListener listener)
|
||||
{
|
||||
return new ZoneMoveHandler(_locman, zmgr, _screg, body, sceneId, sceneVer, listener);
|
||||
}
|
||||
|
||||
/** A table of zone managers. */
|
||||
|
||||
Reference in New Issue
Block a user