From a5e3752a7bd28dace6ecc6cfa59fc7ac366929cc Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 27 May 2003 18:25:19 +0000 Subject: [PATCH] Make it possible to refresh our object tile if we've had our colorizations changed. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2614 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/miso/client/SceneObject.java | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/src/java/com/threerings/miso/client/SceneObject.java b/src/java/com/threerings/miso/client/SceneObject.java index a60b482fb..29d4ecab0 100644 --- a/src/java/com/threerings/miso/client/SceneObject.java +++ b/src/java/com/threerings/miso/client/SceneObject.java @@ -1,5 +1,5 @@ // -// $Id: SceneObject.java,v 1.7 2003/05/02 21:50:22 ray Exp $ +// $Id: SceneObject.java,v 1.8 2003/05/27 18:25:19 mdb Exp $ package com.threerings.miso.client; @@ -50,20 +50,7 @@ public class SceneObject this.info = info; // resolve our object tile - int tsid = TileUtil.getTileSetId(info.tileId); - int tidx = TileUtil.getTileIndex(info.tileId); - try { - tile = (ObjectTile)panel.getTileManager().getTile( - tsid, tidx, panel.getColorizer(info)); - computeInfo(panel.getSceneMetrics()); - - } catch (NoSuchTileException nste) { - Log.warning("Scene contains non-existent object tile " + - "[info=" + info + "]."); - } catch (NoSuchTileSetException te) { - Log.warning("Scene contains non-existent object tileset " + - "[info=" + info + "]."); - } + refreshObjectTile(panel); } /** @@ -220,6 +207,31 @@ public class SceneObject computeInfo(metrics); } + /** + * Reloads and recolorizes our object tile. It is not intended for the + * actual object tile used by a scene object to change in its + * lifetime, only attributes of that object like its colorizations. So + * don't do anything crazy like change our {@link ObjectInfo}'s + * tileId and call this method or things might break. + */ + public void refreshObjectTile (MisoScenePanel panel) + { + int tsid = TileUtil.getTileSetId(info.tileId); + int tidx = TileUtil.getTileIndex(info.tileId); + try { + tile = (ObjectTile)panel.getTileManager().getTile( + tsid, tidx, panel.getColorizer(info)); + computeInfo(panel.getSceneMetrics()); + + } catch (NoSuchTileException nste) { + Log.warning("Scene contains non-existent object tile " + + "[info=" + info + "]."); + } catch (NoSuchTileSetException te) { + Log.warning("Scene contains non-existent object tileset " + + "[info=" + info + "]."); + } + } + /** * Computes our screen bounds, tile footprint and other useful cached * metrics.