Commit Graph

199 Commits

Author SHA1 Message Date
Ray Greenwell b27a863f62 behavior change: null tiles are passable. Hopefully this doesn't break
anything, but it was required to make sprites walk off/on-screen.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1446 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 07:02:31 +00:00
Ray Greenwell 7de32e1c24 Be compatible with out superclass, LineSegmentPath, if someone
calls it's addNode() method.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1445 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 07:01:29 +00:00
Michael Bayne ccbc47a7de Separated path code from sprite code so that we can have other things
follow a path (specifically, I want to allow the media panel to be
"scrolled" along a path).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1409 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 03:38:03 +00:00
Ray Greenwell f448ebe4f1 Create the polygon cache hash with custom parameters to the constructor
to optimize memory performance.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1408 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-30 22:21:51 +00:00
Ray Greenwell fe645cf2b7 typofix
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1389 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-24 20:32:11 +00:00
Ray Greenwell 984fa75229 made getIsoDirection() and getProjectedIsoDirection() more accurate.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1388 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-24 20:15:04 +00:00
Ray Greenwell 193cffe8ea Don't freak out if a base tile is null: now all the off-screen base
tiles are null...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1371 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 19:07:47 +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 4d62053e4d Check for tile intersection using the polygon's bounds rather than doing
the expensive polygon/rectangle intersection test (since we're doing 400
of these every frame).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1308 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-27 23:07:41 +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 1ba123de96 Need to restrict the clipping rectangle not replace it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1291 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-23 03:11:17 +00:00
Michael Bayne 0bde11ee81 Major low-level rendering rethink.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1287 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-23 01:18:17 +00:00
Michael Bayne 8d41371457 Added getProjectedIsoDirection() for obtaining the isometric direction
between two screen coordinates. The screen coordinates are "projected"
into isometric space and the vector between them is calculated (except we
don't actually do the projection because we can tell just by looking at
the points what the projected orientation will be).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1257 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-16 17:20:09 +00:00
Michael Bayne 18475fd820 Added removeSprite() to go with addSprite().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1254 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-15 23:10:40 +00:00
Ray Greenwell 5cedd42923 optimized getMultiTilePolygon to do less swapping
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1225 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-09 17:02:50 +00:00
Ray Greenwell 595aa68539 we love to comment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1224 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-09 04:37:38 +00:00
Ray Greenwell b1d7c171f0 added getMultiTilePolygon, which returns a Polygon describing a rectangle
bounding the two specified tiles.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1223 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-09 04:36:06 +00:00
Ray Greenwell dc82aa0a98 We needn't add the first vertex of a polygon again at the end.
Quoth the java.awt.Polygon documentation:
    The first and final pairs of (x, y) points are joined by a line
    segment that closes the polygon.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1222 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-09 03:12:43 +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
Michael Bayne 6acdb6daae Act on an object's entire bounds rather than one constrained to the shape
of the bottom of its footprint. This allows objects to spill out beyond
their footprint (and not get clipped) as long as they are otherwise well
behaved.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1172 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-02 01:06:46 +00:00
Michael Bayne 405f105f0c Added a method that gets the actual object bounds rather than one confined
to the shape of the bottom of the object footprint; renamed the old method
and left it around in case we want to use it later.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1171 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-02 01:05:49 +00:00
Michael Bayne b486315e47 Revamp! Modified the way configuration is handled.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1166 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-28 22:32: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
Walter Korman 76cff072be Split Sprite into Sprite and ImageSprite. Added LabelSprite. Cleaned up
directional constant usage.  Added ability to render sprites in two
distinct layers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1132 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-16 03:15:06 +00:00
Michael Bayne 137e9e9ea8 Revampola! Moved the code that handles viewport offset into the animated
panel; restructured things so everyone deals with "view" coordinates
rather than screen coordinates and the animated panel takes care of doing
the final translation before rendering.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1065 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-21 06:01:29 +00:00
Michael Bayne 2e6c813bd6 Pass the current time stamp to viewWillScroll().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1063 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-21 00:20:22 +00:00
Michael Bayne 0db9ce6d2d Don't need to create our own sprite manager; added a method for adding
sprites to the screen which takes care of assigning their tile
coordinates.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1048 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 19:58:19 +00:00
Michael Bayne 9b465b9fe3 Split the rendering into scrolled items and fixed items. Render the
sprites (and object tiles) as fixed items.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1047 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 19:57:46 +00:00
Michael Bayne cbaba2b381 Tell the sprite manager about our viewport offset.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1042 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 07:41:55 +00:00
Michael Bayne 922fdc292f Have to translate invalidated rectangles according to our viewport
translations for everything to work out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1038 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 07:20:13 +00:00
Michael Bayne 7db44c5ee3 Let the animated panel handle invalidating the regions exposed by
scrolling so that it can do so with the actual dimensions of the panel
(the scene view only knows how big its model wants to be). Changed
scrollView to viewWillScroll to more accurately reflect what's going on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1036 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 05:03:17 +00:00
Michael Bayne f2f6407c1e Need to account for negative scrolling deltas.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1034 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 04:45:14 +00:00
Michael Bayne b95f764282 Use smart polygons.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1033 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 04:02:50 +00:00
Michael Bayne b0364efa34 Only request a repaint in mouseMoved() when our hobject changes if we're
highlighting objects and the object's action status is in line with
whether or not we're only highlighting objects with actions. Also changed
some things to support the new, simpler, AnimatedView interface.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1023 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 01:26:17 +00:00
Michael Bayne e0e60c3fe3 Modifications to bring things up to speed with interface changes in the
animation base classes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1022 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 01:24:59 +00:00
Michael Bayne 8d56ec853a Documentation clarification.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1020 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-18 06:06:14 +00:00
Michael Bayne c97222993b Have the scene view panel create its own sprite manager and supply it with
a scene view model rather than a config object from which it would create
a model.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1017 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-18 00:40:58 +00:00
Michael Bayne 9faac13369 Added ability to construct a view model directly with the proper
parameters.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1016 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-18 00:37:55 +00:00
Michael Bayne 4b783c4482 Enhancements to support simple scrolling. A number of things don't work if
the view is scrolled, like object tiles, mouse coordinate computation and
pretty much anything other than rendering a scrolling background under
some sprites. Someday we'll probably want to sort out all that other
business, but not under current monthstone circumstances.

Note: the scrolling still feels a bit choppy (even under Windows) which is
annoying, but I'm doing everything by the book and have spent too much
time fine tuning it already, so we'll have to come back to this later if
we're not happy with the visuals.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1012 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 23:45:36 +00:00
Michael Bayne fdf15f0f52 Moved config toggle for showing object footprints into the scene view
model where it resides happily with existing toggles for showing
coordinates and sprite paths; did some other cosmetic cleanup.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1008 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 08:09:11 +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 1bd4668067 Minor code cleanup; didn't turn out to be useful to have the object action
in the object metrics record.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1006 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 07:30:45 +00:00
Michael Bayne 070c12fbbe Automatically precalculate our precalculatables rather than having some
external entity instruct us to do so. We always want them and they're not
that expensive to calculate.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1005 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 07:17:08 +00:00
Michael Bayne 318b476632 Create tile bounding polygons on demand; changed object tile handling such
that a list of object metric records is used rather than a hashtable
mapping tile coords to object tile bounding polygons because we were never
doing a hash lookup, only iterating over the whole table.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1004 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 07:16:21 +00:00
Michael Bayne 8399c9a9cf Removed the code that was setting the clip as it wasn't actually doing
anything. The clip is already properly set before render() is called.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@993 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-12 08:54:49 +00:00
Michael Bayne 5fb9273941 Added code to deal with situations where the SceneViewPanel is smaller
than the IsoSceneView wants to be. Presently we simply center the scene
view, but we'll later be adding the ability to set a rectangle on which to
focus the scene view when shrunk so that the user can always see their own
character.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@992 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-12 08:53:59 +00:00
Michael Bayne 683d5b2c4e Removed TODO as it was already done.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@962 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-07 20:02:53 +00:00