Commit Graph

56 Commits

Author SHA1 Message Date
Michael Bayne d5701962a3 The big fat bernie revamp! Er, big fat miso revamp rather:
- Combined SceneViewPanel and IsoSceneView into one happy panel.
- Ditched the DisplayMisoScene notion; the new MisoScenePanel now manages
  resolved scene information (like base, object and fringe tiles) itself
  so that it can...
- ...support scrolling scenes by keeping blocks of resolved base, fringe
  and object information loaded only for what is potentially visible
  rather than for the whole scene.

Other things were surely cleaned up or broken in the process to keep a
keen eye out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2413 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-17 19:21:17 +00:00
Michael Bayne f06bb6beaa Combined display/runtime/editable scenes; revamped parser system.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2272 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-02-12 07:21:50 +00:00
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 ddb9734501 Create an object priorities array if none is specified in the XML.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1745 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-23 23:53:33 +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
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
Ray Greenwell b63c2aeeba never output the fringe layer.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1364 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 02:25:19 +00:00
Michael Bayne cf536acc3e Add code to MisoSceneModel parser that handles the situation where a scene
with a single object that has no action string gets parsed as a scene with
zero action strings instead of a scene with a single empty action string.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@916 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 01:32:18 +00:00
Michael Bayne e351a54dec Moved miso.tools.scene into miso.scene.tools and same with
miso.tools.tile.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@915 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 01:09:53 +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 2c8dae0570 Wrote a simple miso scene parser.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@690 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-29 20:34:13 +00:00
Michael Bayne baf655620e Made setPrefix() and ditched constructor.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@678 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-29 19:31:12 +00:00
Michael Bayne 6bbce232b4 Implemented and/or cleaned up the XML scene writers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@675 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-29 06:36:29 +00:00
Michael Bayne 6c1051abed Repackaging now that I know what we want to do with the tools package.
Here's the policy:

Every top-level package has a tools package under which all subpackages
exist with their tools additions. For example:

com.threerings.media.tile.TileSet
com.threerings.media.tools.tile.XMLTileSetRuleSet
com.threerings.miso.scene.MisoScene
com.threerings.miso.tools.scene.EditableMisoScene


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@630 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-20 04:15:44 +00:00
Michael Bayne cc21ad8679 Javadoc fixes and cleanups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@623 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-18 04:27:56 +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
Michael Bayne 6278a8fd1f No longer need the _root directory.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@612 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-08 18:36:56 +00:00
Michael Bayne feb2a2633e A bunch of intertwingled changes:
Refactored TileSet into TileSet, UniformTileSet, SwissArmyTileSet and
ObjectTileSet.

Removed dependence on the "root" system property from the
XMLSceneRepository (things either pass in full paths now or input streams
fetched via the resource manager).

Removed MisoUtil.createImageManager() because everyone does that by hand
now (which is good because some non-Miso things were using MisoUtil for
that).

I think that's it, but if there was something else, don't blame me. Blame
the monkeys.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@608 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-08 03:04:45 +00:00
Walter Korman 1a3ed6e45a Renamed XMLFile* classes to just XML*.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@585 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-02 02:52:16 +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 c7d26cea8e Fixed scene rendering issues and improved performance.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@517 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-22 18:21:42 +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 b0a8f3b6fc Write the default scene tile in lieu of shadow tiles since shadow
tiles will be re-generated when the object footprint is stamped on
scene un-serialization.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@478 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-17 22:18:22 +00:00
Walter Korman 00d57dfb92 Added character manager and character descriptions. Allow tile sets
that have no specified layer.  Made the scene editor gracefully handle
the case where there are no valid tile sets for use with the selected
scene layer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@461 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-15 23:53:43 +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 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
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
Walter Korman 8c7efb79fe Made iso scene view configuration part of the miso properties file.
Standardized config key member data names to match those used in the
cocktail code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@318 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-29 18:41:46 +00:00
Walter Korman 56c48c011f Fixed minor bugs in failed attempts to resolve portal bindings. Check
and report errors when attempting to bind entrance portal.
Sanity-check portals in all scenes in the group after bindings are
resolved and report warnings for any still-unbound portals.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@286 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 01:15:16 +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 722073eca6 Cleaned up XML parsing to store temporary info more cleanly. Initial
work on scene group parser.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@271 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 20:14:06 +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 a84eadb351 Use File.separator rather than fetching the system property ourself.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@253 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 02:13:36 +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
Michael Bayne 8d017e268f Because only the editor and viewer even care about the scene repository,
we're eliminating the concept entirely from the MISO runtime stuff and
having the editor and viewer just talk directly to the XML file scene
repository.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@247 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 00:10:59 +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 9f4d4e3ac0 Fixed reference to old exit member data.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@215 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-11 00:01:40 +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 c38123f3e2 Fixed up scene loading/saving to use paths relative to the scene root
directory.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@202 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-09 00:01:58 +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
Walter Korman 343eb1b38f Added default tileset and tile id to the editor properties. Added
more sample tiles with ingenious "daniel"-based naming scheme for
testing purposes.


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