From 5c7f0aea6795545e3c3984c09fdea34dfa849cac Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 29 Sep 2009 00:43:35 +0000 Subject: [PATCH] Allow customizing the ZoneMoveHandler. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@881 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../whirled/zone/server/ZoneMoveHandler.java | 10 +++++++++- .../whirled/zone/server/ZoneRegistry.java | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java b/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java index ee3fb5e4..125d6d01 100644 --- a/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java +++ b/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java @@ -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; diff --git a/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java b/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java index c14374d1..cc2cbc43 100644 --- a/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java +++ b/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java @@ -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. */