Don't resubscribe if nothing changed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2341 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: SpotSceneDirector.java,v 1.23 2003/03/26 02:06:06 mdb Exp $
|
||||
// $Id: SpotSceneDirector.java,v 1.24 2003/03/27 17:24:55 mdb Exp $
|
||||
|
||||
package com.threerings.whirled.spot.client;
|
||||
|
||||
@@ -285,17 +285,21 @@ public class SpotSceneDirector extends BasicDirector
|
||||
// documentation inherited from interface
|
||||
public void attributeChanged (AttributeChangedEvent event)
|
||||
{
|
||||
// if our cluster oid changes from the one we're currently
|
||||
// subscribed to, give it the boot
|
||||
if (_clobj != null && _self.getClusterOid() != _clobj.getOid()) {
|
||||
clearCluster();
|
||||
int cloid = _self.getClusterOid();
|
||||
if ((_clobj == null && cloid == -1) ||
|
||||
(_clobj != null && cloid == _clobj.getOid())) {
|
||||
// our cluster didn't change, we can stop now
|
||||
return;
|
||||
}
|
||||
|
||||
// clear out any old cluster object
|
||||
clearCluster();
|
||||
|
||||
// if there's a new cluster object, subscribe to it
|
||||
if (_chatdir != null && _self.getClusterOid() > 0) {
|
||||
if (_chatdir != null && cloid > 0) {
|
||||
DObjectManager omgr = _ctx.getDObjectManager();
|
||||
// we'll wire up to the chat director when this completes
|
||||
omgr.subscribeToObject(_self.getClusterOid(), this);
|
||||
omgr.subscribeToObject(cloid, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user