From e3dc42daab4dcfa5ed29f6bcebe588c78a06fb88 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sun, 8 Jun 2008 17:18:55 +0000 Subject: [PATCH] Use new LocationManager. Some injection in SimulationManager. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@618 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../micasa/simulator/server/SimpleServer.java | 13 ++++---- .../simulator/server/SimulatorManager.java | 30 +++++++------------ .../whirled/server/SceneMoveHandler.java | 2 +- .../whirled/server/SceneRegistry.java | 4 +-- .../whirled/zone/server/ZoneMoveHandler.java | 2 +- .../whirled/zone/server/ZoneRegistry.java | 6 ++-- 6 files changed, 24 insertions(+), 33 deletions(-) diff --git a/src/java/com/threerings/micasa/simulator/server/SimpleServer.java b/src/java/com/threerings/micasa/simulator/server/SimpleServer.java index 2febe83a..55450e4f 100644 --- a/src/java/com/threerings/micasa/simulator/server/SimpleServer.java +++ b/src/java/com/threerings/micasa/simulator/server/SimpleServer.java @@ -21,16 +21,18 @@ package com.threerings.micasa.simulator.server; +import com.google.inject.Inject; import com.google.inject.Injector; +import com.google.inject.Singleton; import com.samskivert.util.ResultListener; import com.threerings.micasa.server.MiCasaServer; /** - * A simple simulator server implementation that extends the MiCasa server and provides no special - * functionality. + * A simple simulator server implementation that extends the MiCasa server. */ +@Singleton public class SimpleServer extends MiCasaServer implements SimulatorServer { @@ -39,13 +41,12 @@ public class SimpleServer extends MiCasaServer { init(injector); // do our standard initialization - // create the simulator manager - SimulatorManager simmgr = new SimulatorManager(); - simmgr.init(invmgr, plreg, clmgr, omgr, this); - if (obs != null) { // let the initialization observer know that we've started up obs.requestCompleted(this); } } + + // cause the simulator manager to be created + @Inject protected SimulatorManager _simmgr; } diff --git a/src/java/com/threerings/micasa/simulator/server/SimulatorManager.java b/src/java/com/threerings/micasa/simulator/server/SimulatorManager.java index f227b5af..6e8d63f8 100644 --- a/src/java/com/threerings/micasa/simulator/server/SimulatorManager.java +++ b/src/java/com/threerings/micasa/simulator/server/SimulatorManager.java @@ -23,6 +23,8 @@ package com.threerings.micasa.simulator.server; import java.util.ArrayList; +import com.google.inject.Inject; +import com.google.inject.Singleton; import com.threerings.util.Name; import com.threerings.presents.data.ClientObject; @@ -34,6 +36,7 @@ import com.threerings.presents.server.InvocationManager; import com.threerings.crowd.data.BodyObject; import com.threerings.crowd.data.PlaceObject; +import com.threerings.crowd.server.LocationManager; import com.threerings.crowd.server.PlaceManager; import com.threerings.crowd.server.PlaceRegistry; @@ -47,27 +50,14 @@ import static com.threerings.micasa.Log.log; /** * The simulator manager is responsible for handling the simulator services on the server side. */ +@Singleton public class SimulatorManager { - /** - * Initializes the simulator manager manager. This should be called by the server that is - * making use of the simulator services on the single instance of simulator manager that it has - * created. - * - * @param invmgr a reference to the invocation manager in use by this server. - */ - public void init (InvocationManager invmgr, PlaceRegistry plreg, ClientManager clmgr, - RootDObjectManager omgr, SimulatorServer simserv) + @Inject public SimulatorManager (InvocationManager invmgr) { // register our simulator provider SimulatorProvider sprov = new SimulatorProvider(this); invmgr.registerDispatcher(new SimulatorDispatcher(sprov), InvocationCodes.GLOBAL_GROUP); - - // keep these for later - _plreg = plreg; - _clmgr = clmgr; - _omgr = omgr; - _simserv = simserv; } /** @@ -174,7 +164,7 @@ public class SimulatorManager // move the simulant into the game room since they have no location director to // move them automagically try { - _plreg.locprov.moveTo(bobj, _gobj.getOid()); + _locman.moveTo(bobj, _gobj.getOid()); } catch (Exception e) { log.warning("Failed to move simulant into room " + "[e=" + e + "]."); @@ -206,10 +196,10 @@ public class SimulatorManager } // needed for general operation - protected PlaceRegistry _plreg; - protected ClientManager _clmgr; - protected RootDObjectManager _omgr; - protected SimulatorServer _simserv; + @Inject protected PlaceRegistry _plreg; + @Inject protected ClientManager _clmgr; + @Inject protected RootDObjectManager _omgr; + @Inject protected LocationManager _locman; /** The default skill level for AI players. */ protected static final byte DEFAULT_SKILL = 50; diff --git a/src/java/com/threerings/whirled/server/SceneMoveHandler.java b/src/java/com/threerings/whirled/server/SceneMoveHandler.java index 1aa0c5ff..07902be2 100644 --- a/src/java/com/threerings/whirled/server/SceneMoveHandler.java +++ b/src/java/com/threerings/whirled/server/SceneMoveHandler.java @@ -50,7 +50,7 @@ public class SceneMoveHandler extends AbstractSceneMoveHandler { // move to location associated with this scene int ploid = scmgr.getPlaceObject().getOid(); - PlaceConfig config = CrowdServer.plreg.locprov.moveTo(_body, ploid); + PlaceConfig config = CrowdServer.locman.moveTo(_body, ploid); // check to see if they need a newer version of the scene data SceneService.SceneMoveListener listener = (SceneService.SceneMoveListener)_listener; diff --git a/src/java/com/threerings/whirled/server/SceneRegistry.java b/src/java/com/threerings/whirled/server/SceneRegistry.java index faac9636..85755c9b 100644 --- a/src/java/com/threerings/whirled/server/SceneRegistry.java +++ b/src/java/com/threerings/whirled/server/SceneRegistry.java @@ -197,7 +197,7 @@ public class SceneRegistry public void moveBody (BodyObject source, int sceneId) { // first remove them from their old place - CrowdServer.plreg.locprov.leaveOccupiedPlace(source); + CrowdServer.locman.leaveOccupiedPlace(source); // then send a forced move notification SceneSender.forcedMove(source, sceneId); @@ -210,7 +210,7 @@ public class SceneRegistry public void leaveOccupiedScene (BodyObject source) { // remove them from their occupied place (clears out scene info as well) - CrowdServer.plreg.locprov.leaveOccupiedPlace(source); + CrowdServer.locman.leaveOccupiedPlace(source); } /** diff --git a/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java b/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java index 855b3e56..2e771db6 100644 --- a/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java +++ b/src/java/com/threerings/whirled/zone/server/ZoneMoveHandler.java @@ -85,7 +85,7 @@ public class ZoneMoveHandler extends AbstractSceneMoveHandler { // move to the place object associated with this scene int ploid = scmgr.getPlaceObject().getOid(); - PlaceConfig config = WhirledServer.plreg.locprov.moveTo(_body, ploid); + PlaceConfig config = WhirledServer.locman.moveTo(_body, ploid); // now that we've moved, we can update the user object with the new scene and zone ids _body.startTransaction(); diff --git a/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java b/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java index 0e454f18..b0308cfb 100644 --- a/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java +++ b/src/java/com/threerings/whirled/zone/server/ZoneRegistry.java @@ -25,7 +25,7 @@ import com.samskivert.util.HashIntMap; import com.threerings.presents.server.InvocationManager; -import com.threerings.crowd.server.PlaceRegistry; +import com.threerings.crowd.server.LocationManager; import com.threerings.whirled.server.SceneRegistry; import com.threerings.whirled.zone.data.ZoneCodes; @@ -45,10 +45,10 @@ public class ZoneRegistry /** * Creates a zone manager with the supplied configuration. */ - public ZoneRegistry (InvocationManager invmgr, PlaceRegistry plreg, SceneRegistry screg) + public ZoneRegistry (InvocationManager invmgr, LocationManager locman, SceneRegistry screg) { // create a zone provider and register it with the invocation services - zoneprov = new ZoneProvider(plreg.locprov, this, screg); + zoneprov = new ZoneProvider(locman, this, screg); invmgr.registerDispatcher(new ZoneDispatcher(zoneprov), ZoneCodes.WHIRLED_GROUP); }