Initial work on support for objects whose images span multiple tiles.

Made TileSet an interface.  Throw exceptions for unknown tile or tile
set requests.  General clean-up and documentation.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@427 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Walter Korman
2001-10-11 00:41:27 +00:00
parent 5c79f8f082
commit ad7b64d4a1
30 changed files with 811 additions and 521 deletions
+12 -12
View File
@@ -1,33 +1,33 @@
<?xml version="1.0" standalone="yes"?>
<!-- $Id: tilesets.xml,v 1.18 2001/09/28 03:46:01 shaper Exp $ -->
<!-- $Id: tilesets.xml,v 1.19 2001/10/11 00:41:26 shaper Exp $ -->
<!-- Initial test tileset description data. -->
<tilesetgroup>
<tileset tsid="1000" name="Ground">
<tileset tsid="1000" name="Ground" layer="Base">
<imagefile>media/miso/tiles/base.png</imagefile>
<rowheight>16, 16</rowheight>
<rowwidth>32, 32</rowwidth>
<tilecount>10, 10</tilecount>
</tileset>
<tileset tsid="1001" name="Wall">
<tileset tsid="1001" name="Wall" layer="Object">
<imagefile>media/miso/tiles/wall.png</imagefile>
<rowheight>45, 45</rowheight>
<rowwidth>32, 32</rowwidth>
<tilecount>3, 3</tilecount>
</tileset>
<tileset tsid="1002" name="Icons">
<tileset tsid="1002" name="Icons" layer="Object">
<imagefile>media/miso/tiles/icons.png</imagefile>
<rowheight>20, 49</rowheight>
<rowwidth>32, 32</rowwidth>
<tilecount>9, 2</tilecount>
</tileset>
<tileset tsid="1003" name="Red Character">
<tileset tsid="1003" name="Red Character" layer="Fringe">
<imagefile>media/miso/tiles/character.png</imagefile>
<rowheight>94, 94, 94, 94, 94, 94, 94, 94</rowheight>
<rowwidth>94, 94, 94, 94, 94, 94, 94, 94</rowwidth>
@@ -36,7 +36,7 @@
<gapdist>39, 18</gapdist>
</tileset>
<tileset tsid="1005" name="Yellow Character">
<tileset tsid="1005" name="Yellow Character" layer="Fringe">
<imagefile>media/miso/tiles/character-yellow.png</imagefile>
<rowheight>94, 94, 94, 94, 94, 94, 94, 94</rowheight>
<rowwidth>94, 94, 94, 94, 94, 94, 94, 94</rowwidth>
@@ -45,7 +45,7 @@
<gapdist>39, 18</gapdist>
</tileset>
<tileset tsid="1006" name="Black Character">
<tileset tsid="1006" name="Black Character" layer="Fringe">
<imagefile>media/miso/tiles/character-black.png</imagefile>
<rowheight>94, 94, 94, 94, 94, 94, 94, 94</rowheight>
<rowwidth>94, 94, 94, 94, 94, 94, 94, 94</rowwidth>
@@ -54,7 +54,7 @@
<gapdist>39, 18</gapdist>
</tileset>
<tileset tsid="1004" name="Sample">
<tileset tsid="1004" name="Sample" layer="Base">
<imagefile>media/miso/tiles/sample.png</imagefile>
<rowheight>48</rowheight>
<rowwidth>64</rowwidth>
@@ -62,21 +62,21 @@
<passable>1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1</passable>
</tileset>
<tileset tsid="1007" name="Node Icons">
<tileset tsid="1007" name="Node Icons" layer="Fringe">
<imagefile>media/miso/tiles/node-icons.png</imagefile>
<rowheight>16</rowheight>
<rowwidth>16</rowwidth>
<tilecount>8</tilecount>
</tileset>
<tileset tsid="1008" name="Editor Icons">
<tileset tsid="1008" name="Editor Icons" layer="Fringe">
<imagefile>media/miso/tiles/editor-icons.png</imagefile>
<rowheight>22</rowheight>
<rowwidth>20</rowwidth>
<tilecount>5</tilecount>
</tileset>
<tileset tsid="1009" name="Building">
<tileset tsid="1009" name="Building" layer="Object">
<imagefile>media/miso/tiles/building.png</imagefile>
<rowheight>240</rowheight>
<rowwidth>64</rowwidth>
@@ -84,7 +84,7 @@
<passable>0, 0, 0, 0, 0, 0</passable>
</tileset>
<tileset tsid="1010" name="Sword Pieces">
<tileset tsid="1010" name="Sword Pieces" layer="Fringe">
<imagefile>media/miso/tiles/sword-pieces.png</imagefile>
<rowheight>10</rowheight>
<rowwidth>10</rowwidth>
@@ -1,5 +1,5 @@
//
// $Id: ViewerFrame.java,v 1.18 2001/09/13 19:10:26 mdb Exp $
// $Id: ViewerFrame.java,v 1.19 2001/10/11 00:41:27 shaper Exp $
package com.threerings.miso.viewer;
@@ -12,6 +12,7 @@ import com.samskivert.swing.*;
import com.threerings.media.sprite.*;
import com.threerings.media.tile.TileManager;
import com.threerings.media.tile.TileException;
import com.threerings.miso.Log;
import com.threerings.miso.scene.AmbulatorySprite;
@@ -43,10 +44,7 @@ class ViewerFrame extends JFrame implements WindowListener
TileManager tilemgr = _ctx.getTileManager();
// add the test character sprite to the sprite manager
MultiFrameImage[] anims =
TileUtil.getAmbulatorySpriteFrames(tilemgr, TSID_CHAR);
AmbulatorySprite sprite = new AmbulatorySprite(300, 300, anims);
spritemgr.addSprite(sprite);
AmbulatorySprite sprite = createSprite(tilemgr, spritemgr);
// create a top-level panel to manage everything
JPanel top = new JPanel();
@@ -80,6 +78,17 @@ class ViewerFrame extends JFrame implements WindowListener
getContentPane().add(top, BorderLayout.CENTER);
}
protected AmbulatorySprite createSprite (TileManager tilemgr,
SpriteManager spritemgr)
{
MultiFrameImage[] anims =
TileUtil.getAmbulatorySpriteFrames(tilemgr, TSID_CHAR);
AmbulatorySprite sprite = new AmbulatorySprite(300, 300, anims);
spritemgr.addSprite(sprite);
return sprite;
}
/** WindowListener interface methods */
public void windowClosing (WindowEvent e) {
@@ -1,5 +1,5 @@
//
// $Id: ViewerSceneViewPanel.java,v 1.17 2001/10/08 21:04:26 shaper Exp $
// $Id: ViewerSceneViewPanel.java,v 1.18 2001/10/11 00:41:27 shaper Exp $
package com.threerings.miso.viewer;
@@ -26,7 +26,7 @@ public class ViewerSceneViewPanel extends SceneViewPanel
public ViewerSceneViewPanel (
ViewerContext ctx, SpriteManager spritemgr, AmbulatorySprite sprite)
{
super(ctx.getConfig(), ctx.getTileManager(), spritemgr);
super(ctx.getConfig(), spritemgr);
_ctx = ctx;
_sprite = sprite;