Commit Graph

65 Commits

Author SHA1 Message Date
Michael Bayne e6796b2d55 The amazing revamp four hundred billion. Let's see:
- Reworked colorization repository such that we now have arbitrary named
  "colorization classes" which can be used by various and sundry entities
  to colorize themselves.

- Added support for individual object colorizations as well as "spots"
  that go along with objects (will be used to automatically create portals
  into buildings and automatically position users properly when at a
  "station").

- Repackaged things in miso to more closely mimic what we do everywhere
  else (no more miso.scene, now we have miso.data and miso.client).

- Fixed up miso scene XML representation so that objects can more easily
  be expanded to have yet more stuff if we think of more stuff that they
  might aught to have in the future. Structured the miso scene model so
  that "uninteresting" objects (those that simply sit somewhere and don't
  do anything) take up a lot less memory than "interesting" objects (those
  that have action strings, "spots", colorizations and the works). I may
  want to roll colorizations into the "uninteresting" realm, but that
  remains to be seen.

- Made it possible for object tilesets to specify default render
  priorities for objects in that tileset. This will hopefully allow us to
  get by without any "custom" render priorities that are specified on
  scene objects, instead relying on the default priorities to resolve
  common conflicts.

There are surely other cleanups in there, but I think that was the major
thrust of it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2228 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-31 23:10:46 +00:00
Michael Bayne b9be0aef92 Tiles are now immutable, so the DisplayMisoScene becomes the arbiter of
whether or not a traverser can traverse a tile.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2119 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-13 22:53:56 +00:00
Walter Korman 3ccbb4ad5b Whitespace change.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2053 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-11 23:05:07 +00:00
Michael Bayne 68af441fbf Objects now have explicit render priorities rather than relying on the
order in which they were added to the scene (that information is no longer
available as objects are reordered arbitrarily once loaded).

Also removed old-school scene conversion.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1743 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-23 23:07:11 +00:00
Michael Bayne 92c8748c7c More progress toward arbitrarily scrollable scenes. The IsoSceneView still
requests all objects in God's green earth, but we now have the necessary
structures for it to request new objects as they scroll (nearly) into view
and for it to abandon objects as they scroll (way) out of view.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1742 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-23 21:54:50 +00:00
Michael Bayne 9fb0de8e29 Miso scene revamp to more cleanly deal with object tiles and their
associated metrics. Also fixed render order handling such that any
overlapping object tiles are rendered in the order that they are added to
the scene. This gives us control over what to do in situations that are
impossible to determine based on object footprint alone.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1708 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-18 02:32:57 +00:00
Michael Bayne d287fa7195 Catch tile exceptions and report them instead of giving birth to a sizable
member of the bovine community.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1673 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-12 21:10:31 +00:00
Ray Greenwell bb6b0f56ca Changed MisoSceneModel so that it knows about the view width and height.
It no longer stores base tiles that are not visable in the view,
in fact it stores the base tiles in an array almost half the size as the
fully expanded scene array, and this new smaller array is used everywhere:
when saving the scene, serializing it to the user, or saving it in
the database.
We must now use the getBaseTile() and setBaseTile() methods to access the
base tiles because they are stored in this compressed format.
Also removed the fringe layer completely from the MisoSceneModel.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1369 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 19:06:23 +00:00
Michael Bayne 2005f22000 Moved fringing code into base display miso scene and added code to fringe
a scene when it is first displayed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1327 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-03 04:12:48 +00:00
Michael Bayne f79d048084 Create the lists and tables at construct time in case we never load up a
scene and are asked to look at that stuff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1312 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-28 01:37:02 +00:00
Michael Bayne 938445071e Removed the last vestiges of the object "layer". Scenes now simply have a
list of objects, they can overlap (I think that objects added to a scene
later will be rendered before objects added earlier which ends up feeling
natural in the editor); no longer are objects ignored when their footprint
lies outside the scene bounds.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1302 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-27 18:41:14 +00:00
Michael Bayne b06c592a1b Display and editable miso scenes now take a miso tile manager so that they
can do their fringing business.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1191 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-06 01:52:34 +00:00
Ray Greenwell 1a53da6727 Formatting changes:
- removed tabs
- explicitly specify imports
- I made each comment a complete and punctuated sentance.
- other minor convention changes


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1155 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-26 23:35:02 +00:00
Ray Greenwell aca95b8540 Store object tiles in HashIntMaps instead of in arrays because they may
have coordinates outside of the normal scene coordinates.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1150 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-26 20:17:51 +00:00
Michael Bayne 42261772a5 Modified scene interface so that tiles are requested directly so that we
can implement "virtual" scenes which return tiles infinitely in all
directions in anticipation of supporting scrolling.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1007 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 08:01:15 +00:00
Michael Bayne 81ed1f42e8 Removed the ShadowTile and replaced it with facilities in the BaseTile to
"cover" a tile with an object tile. While a tile is covered, it is
impassable. This allows us to have base tiles under object tile footprints
that are rendered, but not traversable by character sprites.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@944 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 17:13:06 +00:00
Michael Bayne a07282b2d2 Added support for associating an action with any of the object tiles in
the scene. This will eventually be interpreted by the scene rendering code
to allow objects to be clickable.

Also rewrote scene serialization code using new Java buffer services which
are much more efficient at reading and writing arrays of integers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@894 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-30 18:28:32 +00:00
Michael Bayne f1b92df3d1 Disected and reassembled things so that a miso scene can be constructed
without a tile manager, which can be provided later, at which point all of
the tiles will be resolved. Also made it possible to replace the model in
a partially constructed scene. How's that for a turn of phrase: partially
constructed scene. Wheee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@743 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-05 07:29:06 +00:00
Michael Bayne d2dff11867 Fixed x,y vs. col,row thing once and for all. Also cleaned up object tile
footprint setting.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@711 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-29 23:08:28 +00:00
Michael Bayne 455062779d Was populating the display scene from the model incorrectly.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@677 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-29 19:30:51 +00:00
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
Michael Bayne ae1052a371 Oh the vast sweeping changes, and they're not even close to complete, but
things compile and most things run so this is a good time to checkpoint.
Let me recall:

- Refactored the whole scene deal.
- Revamped the XML parser stuff (now uses Digester).
- Rethought the tile management.
- Started tile bundle stuff.
- Wrote some tests.
- Did a bit of Mike-ification.

Onward and moreward.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@621 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-18 04:09:23 +00:00
Michael Bayne d35f2894c1 Phase one of the scene refactoring (which will set the stage for all
manner of happiness and joy).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@615 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-12 20:56:56 +00:00
Walter Korman 4b58a696ca Added the ability to specify one portal in a scene as the "default
entrance."  The default entrance is specially highlighted in the scene
and can be read from and written to XML scene description files.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@558 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-25 16:36:43 +00:00
Walter Korman 2ecd879692 More work on object placement, removal, and rendering within scenes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@479 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-17 22:21:22 +00:00
Walter Korman 3773da79a6 More work on object tiles. Revamped isometric scene rendering to
gather dirty sprites and objects and render after base and fringe tile
layers.  Add shadow tiles in the footprint of objects to make them
impassable.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@460 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-13 01:08:59 +00:00
Walter Korman ad7b64d4a1 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
2001-10-11 00:41:27 +00:00
Walter Korman 95ba5ef9cf Separate the notion of tile passability from tile objects since
passability is specific to the miso layer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@405 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-08 21:04:26 +00:00
Michael Bayne e5849ab0b6 Added ability to set scene id and version to EditableScene.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@356 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-28 01:46:10 +00:00
Michael Bayne cdaea4bbab Waffle waffle. Changed MisoScene back to returning lists rather than
arrays for locations, portals and clusters.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@355 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-28 01:31:32 +00:00
Michael Bayne 2fb833fd5b Serious scene surgery.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@344 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-21 02:30:35 +00:00
Michael Bayne 7c96663f44 Minor scene changes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@342 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-21 00:21:40 +00:00
Walter Korman a7c639ffe0 Modified MisoScene and related classes to obtain the scene tile
dimensions from the scene view data model.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@319 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-29 19:50:46 +00:00
Michael Bayne 8376b6e9fa Extracted tile code from MISO and moved it into it's own package in media
because it's general purpose.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@273 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 23:14:21 +00:00
Walter Korman 5780e57dcf More work on loading scene groups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@272 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 22:05:01 +00:00
Walter Korman a99829818f Changed exit to portal. Limit tile bounds to something reasonable
when invalidating the scene view.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@270 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 18:05:17 +00:00
Michael Bayne 2cbed37cac Whirled Scene ids are ints. Need to bust the upgrade from shorts.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@250 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 01:10:09 +00:00
Michael Bayne a07f5d4d13 Changed Scene to MisoScene. Made MisoScene implement Whirled's Scene
interface.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@249 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 01:08:49 +00:00
Walter Korman 1502dcaa06 Moved scene util classes into a separate package.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@243 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-14 21:29:40 +00:00
Walter Korman d54d562992 Updated comments.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@230 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-13 15:00:24 +00:00
Walter Korman 546e39b0bb Added support for creating and editing exits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@229 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-13 05:42:36 +00:00
Walter Korman 60b47ff298 Reworked location placement so that the editor knows only about
Location objects and needn't muck about with full coordinates.
Beginning work on exit placement.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@214 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-11 00:00:13 +00:00
Walter Korman 356f15595e Draw locations such that orientation is apparent. Added support for
editing existing location information.
 CVS: ----------------------------------------------------------------------


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@213 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-10 23:07:04 +00:00
Walter Korman 8d7c2fc4e9 Fixed bug in saving clusters to XML. Added checkbox to editor to
allow display of locations and cluster indexes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@212 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-10 21:17:07 +00:00
Walter Korman ff101fb4ef Renamed Spot to Cluster, replaced SpotGroup with ClusterUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@211 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-10 01:31:25 +00:00
Walter Korman 9df1deef66 More work on editor support for location creation and editing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@209 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-10 00:47:34 +00:00
Walter Korman 593d17aeb5 Reworking exits and locations en route to editor support for placement
within a scene.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@208 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-09 21:17:06 +00:00
Walter Korman 6e7c8e29c5 Implemented tile deletion from the scene.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@205 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-09 05:44:07 +00:00
Walter Korman 42967815e1 Created base SceneViewPanel that the editor and viewer apps extend.
Added fringe layer to scenes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@176 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-04 01:41:02 +00:00
Walter Korman efb1881507 Use a polygon to determine whether a sprite is within a particular
tile.  Updated scene/tile dimensions and default scene to use 64x48
tiles.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@151 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-02 18:59:00 +00:00