Commit Graph

178 Commits

Author SHA1 Message Date
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
Michael Bayne 39db06672b Modified the AStar path algorithm to use the geometric distance to the
goal as its distance estimate and to assign a higher cost to diagonal
traversal than to orthogonal traversal.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@961 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-07 19:57:24 +00:00
Michael Bayne 2ba2e7a994 No longer need the SwingSceneViewPanel.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@952 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 23:40:25 +00:00
Michael Bayne 923ff9e9a4 Third time's a charm. Why I thought I needed to invert the logic, I do not
know.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@951 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 23:38:45 +00:00
Michael Bayne 87c6c3e468 Whoops. Wasn't statuc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@950 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 23:35:47 +00:00
Michael Bayne 1b7b8e5737 Added objectFootprintsOverlap(). It's used by the editor, but IsoUtil
seemed like the right place for it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@949 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 23:34:17 +00:00
Michael Bayne 554d11c62b Added support for rendering object footprints when rendering objects
(useful in the editor to see what's traversable and what's not).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@948 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 23:14:56 +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
Walter Korman a63692e7b3 Javadoc fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@909 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 17:43:57 +00:00
Michael Bayne 71c7c4bdb2 Added getScene() and getHoverCoords().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@905 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 02:53:29 +00:00
Michael Bayne 899523d8b6 Removed debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@904 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 02:12:35 +00:00
Michael Bayne 4143fbf383 Set the default to never highlight objects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@903 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 02:10:36 +00:00
Michael Bayne cc045d3fe3 Got object tile highlighting working. Now the IsoSceneView correctly keeps
track of the front-most object that the mouse is over.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@902 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 02:10:00 +00:00
Michael Bayne 0b78324abf Beginnings of support for the scene view to track the object (sprite or
object tile) over which the mouse is hovering. The iso scene view will
also support highlighting the object tile over which the mouse is hovering
as well as base tile highlighting to make the editor's life easier.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@900 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 01:07:02 +00:00
Michael Bayne 02f7b90a67 Avoid some extra array allocation and fiddling if we've got zero or one
items in our dirty item list. No need for sorting and copying in such
cases.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@899 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 01:04:54 +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
Walter Korman 5510400f45 Pass a Graphics2D to AnimatedPanel.render() so that sub-classes needn't
explicitly typecast it on their own, as they are almost invariably wont to
do.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@890 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-23 17:10:41 +00:00
Walter Korman 651ff37b66 Javadoc edits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@888 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-22 18:58:52 +00:00
Michael Bayne bcd203d045 No longer need to create our animation manager.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@884 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 07:04:46 +00:00
Walter Korman aa574a8182 Added support for animations to the animation manager. Moved animation
classes into their own package.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@849 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-11 16:17:34 +00:00
Walter Korman c677d08c50 Initial version of a Swing-based variant of the SceneViewPanel, which is
possibly only a temporary workaround intended to allow the scene editor to
work.  BufferStrategy-style rendering only works with Window or Canvas
objects, but the scene editor is a full-fledged Swing application and if
the scene view panel isn't a Swing component then menus and other things
won't render properly on top of it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@848 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-08 22:19:29 +00:00
Walter Korman e3c4fd02b7 Initial work on making use of full-screen exclusive mode and additional
rendering optimizations available in JDK 1.4.  Use a BufferStrategy, and
changed AnimatedPanel to extend Canvas rather than JPanel.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@847 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-08 22:16:59 +00:00