the way I was doing inheritance between the display and editable scene
implementations was not copacetic. The new method (which is for every
editable scene impl to delegate to a display scene impl so that regardless
of how far along you are on the inheritance chain, there are only ever two
actual objects, the display impl and the editable impl) is somewhat
cleaner, but makes it clear that no method can work as nicely as it would
were we to have mutliple inheritance.
The basic problem is that the editable versions of the scenes have to be
able to manipulate the instance variables in the display versions of the
scenes because they have to keep them up to date so that they are
displaying the right thing. As the editable versions are in different
packages, they don't have access to the display instance variables, so the
display versions simply have to make available enough "editable"
functionality to allow the editable versions to get their job done. It's
more coupling that I'd like, but at least it's only between the display
and editable versions across the inheritance hierarchy rather than down
the hierarchy.
Blah.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@745 542714f4-19e9-0310-aa3c-eee0fc999fb1
the new new style (or was that the new new new style).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@739 542714f4-19e9-0310-aa3c-eee0fc999fb1
Augmented standard scene and spot scene models with versions that provide
access to data only needed by the editor and loader. Filtered that whole
paradigm down through the locations and portals and all that.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@737 542714f4-19e9-0310-aa3c-eee0fc999fb1
higher-level mechanism. Zones provide zone summaries which can be used to
generate maps of the zones on the client.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@727 542714f4-19e9-0310-aa3c-eee0fc999fb1
ZoneDirector can extend the moveTo process to incorporate zones.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@726 542714f4-19e9-0310-aa3c-eee0fc999fb1
can extend it when extending the Whirled services rather than having to go
down to CrowdClient and cut Whirled out of the loop.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@724 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
whirled.spot package will provide and created a Log class for the package.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@617 542714f4-19e9-0310-aa3c-eee0fc999fb1
from the scene registry during its shutdown process.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@545 542714f4-19e9-0310-aa3c-eee0fc999fb1
changed to Presents and Party changed to Crowd. Whee!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@431 542714f4-19e9-0310-aa3c-eee0fc999fb1
order. Also moved stuff from whirled.client.test and whirled.server.test
into whirled.test because it's silly having two separate test directories.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@401 542714f4-19e9-0310-aa3c-eee0fc999fb1
InvocationDirector (please god let the renaming be done). Removed IntMap
and modified code to use samskivert's HashIntMap.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@375 542714f4-19e9-0310-aa3c-eee0fc999fb1
Changed SceneManager to SceneDirector. Updated to deal with
LocationManager name change. Clean, clean, clean.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@369 542714f4-19e9-0310-aa3c-eee0fc999fb1
scene repository. Also added example config for the static connection
provider that's used by default.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@359 542714f4-19e9-0310-aa3c-eee0fc999fb1
probably come out again because it should really be added by the manager
used by the target application. They may not want exactly the same kind of
chat support.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@307 542714f4-19e9-0310-aa3c-eee0fc999fb1