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;
|
_summary = summary;
|
||||||
|
|
||||||
// now resolve the target scene
|
// now resolve the target scene
|
||||||
_screg.resolveScene(_sceneId, this);
|
resolveScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
// from interface ZoneManager.ResolutionListener
|
// from interface ZoneManager.ResolutionListener
|
||||||
@@ -112,6 +112,14 @@ public class ZoneMoveHandler extends AbstractSceneMoveHandler
|
|||||||
_zmgr.bodyDidEnterZone(_body, _summary.zoneId);
|
_zmgr.bodyDidEnterZone(_body, _summary.zoneId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Begins the process of resolving the target scene.
|
||||||
|
*/
|
||||||
|
protected void resolveScene ()
|
||||||
|
{
|
||||||
|
_screg.resolveScene(_sceneId, this);
|
||||||
|
}
|
||||||
|
|
||||||
protected ZoneManager _zmgr;
|
protected ZoneManager _zmgr;
|
||||||
protected SceneRegistry _screg;
|
protected SceneRegistry _screg;
|
||||||
protected int _sceneId, _version;
|
protected int _sceneId, _version;
|
||||||
|
|||||||
@@ -171,8 +171,18 @@ public class ZoneRegistry
|
|||||||
}
|
}
|
||||||
|
|
||||||
// resolve the zone and move the user
|
// resolve the zone and move the user
|
||||||
zmgr.resolveZone(zoneId, new ZoneMoveHandler(_locman, zmgr, _screg, (BodyObject)caller,
|
zmgr.resolveZone(zoneId, createZoneMoveHandler(
|
||||||
sceneId, sceneVer, listener));
|
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. */
|
/** A table of zone managers. */
|
||||||
|
|||||||
Reference in New Issue
Block a user