Files
narya/src/java/com/threerings/miso/client/MisoCharacterSprite.java
T
Michael Bayne 2ad3f03a34 Changed MisoTile to BaseTile.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@654 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-27 22:17:42 +00:00

104 lines
2.8 KiB
Java

//
// $Id: MisoCharacterSprite.java,v 1.3 2001/11/27 22:17:42 mdb Exp $
package com.threerings.miso.scene;
import com.threerings.cast.CharacterSprite;
import com.threerings.miso.tile.BaseTile;
/**
* The miso character sprite extends the basic character sprite to
* support the notion of tile passability, and to allow the sprite to
* store and make available its tile and fine coordinates within the
* scene. Note that the tile and fine coordinates must initially be
* set properly by whomever creates the sprite. Thereafter, the
* sprite will only be moved about via the {@link TilePath}, which
* will itself keep the sprite coordinates properly up to date.
*/
public class MisoCharacterSprite
extends CharacterSprite
implements Traverser
{
// documentation inherited
public boolean canTraverse (BaseTile tile)
{
// by default, passability is solely the province of the tile
return tile.isPassable();
}
/**
* Returns the sprite's location on the x-axis in tile coordinates.
*/
public int getTileX ()
{
return _tilex;
}
/**
* Returns the sprite's location on the y-axis in tile coordinates.
*/
public int getTileY ()
{
return _tiley;
}
/**
* Returns the sprite's location on the x-axis within its current
* tile in fine coordinates.
*/
public int getFineX ()
{
return _finex;
}
/**
* Returns the sprite's location on the y-axis within its current
* tile in fine coordinates.
*/
public int getFineY ()
{
return _finey;
}
/**
* Sets the sprite's location in tile coordinates; the sprite is
* not actually moved in any way. This method is only intended
* for use in updating the sprite's stored position which is made
* accessible to others that may care to review it.
*/
public void setTileLocation (int x, int y)
{
_tilex = x;
_tiley = y;
}
/**
* Sets the sprite's location in fine coordinates; the sprite is
* not actually moved in any way. This method is only intended
* for use in updating the sprite's stored position which is made
* accessible to others that may care to review it.
*/
public void setFineLocation (int x, int y)
{
_finex = x;
_finey = y;
}
// documentation inherited
protected void toString (StringBuffer buf)
{
super.toString(buf);
buf.append(", tilex=").append(_tilex);
buf.append(", tiley=").append(_tiley);
buf.append(", finex=").append(_finex);
buf.append(", finey=").append(_finey);
}
/** The sprite location in tile coordinates. */
protected int _tilex, _tiley;
/** The sprite location in fine coordinates. */
protected int _finex, _finey;
}