From 130d126238ebda9ce16776cc58b98eaae12a17fd Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 28 Nov 2002 03:42:17 +0000 Subject: [PATCH] Make it possible for other kinds of sprites to know and report their tile coordinates. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2004 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/miso/client/IsoSceneView.java | 10 ++++----- .../com/threerings/miso/client/IsoSprite.java | 21 +++++++++++++++++++ .../miso/client/MisoCharacterSprite.java | 12 ++++------- 3 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 src/java/com/threerings/miso/client/IsoSprite.java diff --git a/src/java/com/threerings/miso/client/IsoSceneView.java b/src/java/com/threerings/miso/client/IsoSceneView.java index b92aa0a1e..d76bc92e1 100644 --- a/src/java/com/threerings/miso/client/IsoSceneView.java +++ b/src/java/com/threerings/miso/client/IsoSceneView.java @@ -1,5 +1,5 @@ // -// $Id: IsoSceneView.java,v 1.125 2002/11/20 22:16:54 mdb Exp $ +// $Id: IsoSceneView.java,v 1.126 2002/11/28 03:42:17 mdb Exp $ package com.threerings.miso.scene; @@ -385,10 +385,10 @@ public class IsoSceneView implements SceneView // if this is a miso character sprite, we can use its cached // tile coordinates int tx, ty; - if (sprite instanceof MisoCharacterSprite) { - MisoCharacterSprite mcs = (MisoCharacterSprite)sprite; - tx = mcs.getTileX(); - ty = mcs.getTileY(); + if (sprite instanceof IsoSprite) { + IsoSprite iso = (IsoSprite)sprite; + tx = iso.getTileX(); + ty = iso.getTileY(); } else { // otherwise we have to compute them from the screen diff --git a/src/java/com/threerings/miso/client/IsoSprite.java b/src/java/com/threerings/miso/client/IsoSprite.java new file mode 100644 index 000000000..f216b1e11 --- /dev/null +++ b/src/java/com/threerings/miso/client/IsoSprite.java @@ -0,0 +1,21 @@ +// +// $Id: IsoSprite.java,v 1.1 2002/11/28 03:42:17 mdb Exp $ + +package com.threerings.miso.scene; + +/** + * An interface implementable by sprites that know their tile coordinates + * in the isometric view. + */ +public interface IsoSprite +{ + /** + * Returns the sprite's location on the x-axis in tile coordinates. + */ + public int getTileX (); + + /** + * Returns the sprite's location on the y-axis in tile coordinates. + */ + public int getTileY (); +} diff --git a/src/java/com/threerings/miso/client/MisoCharacterSprite.java b/src/java/com/threerings/miso/client/MisoCharacterSprite.java index b17c845bd..e2fc3ab05 100644 --- a/src/java/com/threerings/miso/client/MisoCharacterSprite.java +++ b/src/java/com/threerings/miso/client/MisoCharacterSprite.java @@ -1,5 +1,5 @@ // -// $Id: MisoCharacterSprite.java,v 1.5 2002/07/08 21:41:30 mdb Exp $ +// $Id: MisoCharacterSprite.java,v 1.6 2002/11/28 03:42:17 mdb Exp $ package com.threerings.miso.scene; @@ -17,7 +17,7 @@ import com.threerings.miso.tile.BaseTile; * will itself keep the sprite coordinates properly up to date. */ public class MisoCharacterSprite extends CharacterSprite - implements Traverser + implements Traverser, IsoSprite { // documentation inherited public boolean canTraverse (BaseTile tile) @@ -26,17 +26,13 @@ public class MisoCharacterSprite extends CharacterSprite return tile.isPassable(); } - /** - * Returns the sprite's location on the x-axis in tile coordinates. - */ + // documentation inherited from interface public int getTileX () { return _tilex; } - /** - * Returns the sprite's location on the y-axis in tile coordinates. - */ + // documentation inherited from interface public int getTileY () { return _tiley;