Files
narya/src/java/com/threerings/whirled/spot/tools/EditableSpotScene.java
T
Michael Bayne 14b9708e9e Added facilities for obtaining a valid location id from the scene because
it's the one that knows which location ids are in use.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@748 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-05 09:20:10 +00:00

68 lines
2.1 KiB
Java

//
// $Id: EditableSpotScene.java,v 1.5 2001/12/05 09:20:10 mdb Exp $
package com.threerings.whirled.tools.spot;
import com.threerings.whirled.tools.EditableScene;
import com.threerings.whirled.spot.client.DisplaySpotScene;
import com.threerings.whirled.spot.data.Location;
import com.threerings.whirled.spot.data.Portal;
import com.threerings.whirled.spot.data.SpotSceneModel;
/**
* The editable spot scene interface is used in the offline scene building
* tools as well as by the tools that load those prototype scenes into the
* runtime database. Accordingly, it provides a means for modifying scene
* values and for obtaining access to the underlying scene models that
* represent the underlying scene information.
*
* @see EditableScene
*/
public interface EditableSpotScene
extends DisplaySpotScene, EditableScene
{
/**
* Sets the location id of the default entrance to this scene.
*/
public void setDefaultEntranceId (int defaultEntranceId);
/**
* Returns the next valid location id for this scene. Newly created
* portals or locations should be assigned a new location id via this
* method.
*/
public int getNextLocationId ();
/**
* Adds a location to this scene.
*/
public void addLocation (Location location);
/**
* Removes the specified location from the scene.
*/
public void removeLocation (Location location);
/**
* Adds a portal to this scene (it should be added appropriately to
* both the location and portal arrays).
*/
public void addPortal (EditablePortal portal);
/**
* Removes a portal from this scene (it should be removed accordingly
* from both the location and portal arrays).
*/
public void removePortal (EditablePortal portal);
/**
* Implementations must provide a scene model that represents the
* current state of this editable scene in response to a call to this
* method. Whether they maintain an up to date scene model all along
* or generate one at the time this method is called is up to the
* implementation.
*/
public EditableSpotSceneModel getSpotSceneModel ();
}