//
// $Id: MisoScene.java,v 1.6 2001/10/17 22:21:22 shaper Exp $
package com.threerings.miso.scene;
import java.util.List;
import com.threerings.media.tile.Tile;
import com.threerings.media.tile.ObjectTile;
import com.threerings.miso.tile.MisoTile;
/**
* A scene object represents the data model corresponding to a single
* screen for game play. For instance, one scene might display a portion
* of a street with several buildings scattered about on the periphery.
*/
public interface MisoScene
{
/** Scene id to denote an unset or otherwise invalid scene id. */
public static final int SID_INVALID = -1;
/** The total number of layers. */
public static final int NUM_LAYERS = 3;
/** The base layer id. */
public static final int LAYER_BASE = 0;
/** The fringe layer id. */
public static final int LAYER_FRINGE = 1;
/** The object layer id. */
public static final int LAYER_OBJECT = 2;
/**
* Returns the scene's unique identifier.
*/
public int getId ();
/**
* Returns the scene's name. Every scene has a descriptive name.
*/
public String getName ();
/**
* Returns an array of the tile layers that comprise the scene.
* The array returned by this method should not be
* modified.
*/
public Tile[][][] getTiles ();
/**
* Returns the tile layer for the specified layer index. The
* array returned by this method should not be modified.
*/
public Tile[][] getTiles (int lnum);
/**
* Returns the tiles that comprise the base layer of this scene.
* The array returned by this method should not be
* modified.
*/
public MisoTile[][] getBaseLayer ();
/**
* Returns the tiles that comprise the fringe layer of this scene.
* The array returned by this method should not be
* modified.
*/
public Tile[][] getFringeLayer ();
/**
* Returns the tiles that comprise the object layer of this scene.
* The array returned by this method should not be
* modified.
*/
public ObjectTile[][] getObjectLayer ();
/**
* Returns the default tile for the base layer of the scene.
*/
public MisoTile getDefaultTile ();
/**
* Returns the locations in this scene. The locations list should
* contain all locations and portals in the scene. The list
* returned by this method should not be modified.
*/
public List getLocations ();
/**
* Returns the clusters in this scene. The clusters will reference
* all of the locations that are clustered. The list returned by
* this method should not be modified.
*/
public List getClusters ();
/**
* Returns the portals associated with this scene. Portals should
* never be part of a cluster. The list returned by this method
* should not be modified.
*/
public List getPortals ();
/**
* Returns the portal that is the default entrance to this scene.
*/
public Portal getEntrance ();
}