From 12a4f4bb7e1a901e56a848f46045e1d38946042d Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sat, 4 Feb 2006 03:30:44 +0000 Subject: [PATCH] Oops, we need to be able to add and remove observers. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3831 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/jme/camera/CameraHandler.java | 19 +++++++++++++++++-- .../com/threerings/jme/camera/CameraPath.java | 5 ++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/java/com/threerings/jme/camera/CameraHandler.java b/src/java/com/threerings/jme/camera/CameraHandler.java index 75177b200..34b47a899 100644 --- a/src/java/com/threerings/jme/camera/CameraHandler.java +++ b/src/java/com/threerings/jme/camera/CameraHandler.java @@ -119,6 +119,22 @@ public class CameraHandler return (_camera.getLocation().z - _minZ) / (_maxZ - _minZ); } + /** + * Adds a camera path observer. + */ + public void addCameraObserver (CameraPath.Observer camobs) + { + _campathobs.add(camobs); + } + + /** + * Removes a camera path observer. + */ + public void removeCameraObserver (CameraPath.Observer camobs) + { + _campathobs.remove(camobs); + } + /** * Starts the camera moving along a path which will be updated every tick * until it is complete. @@ -328,8 +344,7 @@ public class CameraHandler _path = path; } public boolean apply (Object observer) { - ((CameraPath.Observer)observer).pathCompleted(_path); - return true; + return ((CameraPath.Observer)observer).pathCompleted(_path); } protected CameraPath _path; } diff --git a/src/java/com/threerings/jme/camera/CameraPath.java b/src/java/com/threerings/jme/camera/CameraPath.java index 746561b84..3837b6035 100644 --- a/src/java/com/threerings/jme/camera/CameraPath.java +++ b/src/java/com/threerings/jme/camera/CameraPath.java @@ -36,8 +36,11 @@ public abstract class CameraPath * path was set before this path completed). * * @param path the path that was completed. + * + * @return true if the observer should remain in the list, false if it + * should be removed following this notification. */ - public void pathCompleted (CameraPath path); + public boolean pathCompleted (CameraPath path); } /**