Commit Graph

319 Commits

Author SHA1 Message Date
Michael Bayne d0f8f1e1d0 Turns out people had extended Sprite and added their own Comparable
implementation, so let's not stick a fork in that.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@353 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-22 06:45:42 +00:00
Mike Thomas c73ec397e0 The old way I had the Directory-based bundlers checking for out-of-dateness was prone to error in the face of new files or unfortunate subdirectory situations. Now check on an entry-by-entry basis instead, which is much happier.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@351 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-15 21:56:34 +00:00
Mike Thomas c68df0bab2 If the directory is missing/empty, don't fail to get the last modification date.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@350 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-15 18:28:20 +00:00
Mike Thomas d6b01cab7a Enable keyword substitution on these new files.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@348 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-13 19:24:53 +00:00
Mike Thomas f57e973987 Rather than forcing a rebuild of our tileset and component bundles every time when we're deploying to a directory bundle, decide based on the oldest modification time stamp of any file within the directory. Otherwise, these builds get crazy long.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@347 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-13 18:29:49 +00:00
Mike Thomas a0b5874d5f Since we're dropping in individual files here, always assume out of date rather than using the directory's modification time. Eventually, maybe we can scan the directory for the newest file and use that, but we'll cross that bridge later.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@346 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-13 17:49:05 +00:00
Mike Thomas ee73dd43de New type of ResourceBundle - NetworkResourceBundle - This bundle grabs its resources over HTTP from a root URL rather than from a local jar file. To make use of this, we need a way to put all the contents of the bundle into an appropriate directory instead of a jar, including its metadata, so some new Bundler Tasks were created to do this. Finally, allow tile set trimming to be done to a non-raw image format through passing an optional imgFormat parameter. If no parameter is passed, it'll default ot the old behavior of using raw/FastIO. Note that to use network bundles, you can set the set_type in the resource manager.properties file. (e.g. "resource.set_type.tilesets = network") If no set_type is set for a resource set, it defaults to a normal FileResourceBundle
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@343 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-13 01:12:18 +00:00
Mike Thomas 785eb10234 Other errors can occur when loading native keyboard lib, such as security exceptions, so let's catch those too and cope.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@342 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-13 00:44:53 +00:00
Michael Bayne 93e28d42a6 Let's just install rather than build and install here as well.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@337 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-10 19:43:07 +00:00
Michael Bayne fd64f4d460 Nix unused imports.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@336 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-10 01:19:07 +00:00
Michael Bayne 5485cf2ab4 Make our ManagedRoot available to callers.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@335 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-09 23:00:04 +00:00
Michael Bayne cba2fc4f67 Freak not out when loading images from input streams in a sandbox.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@333 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-08 02:36:17 +00:00
Dave Hoover ffd07764ee In case something goes screwy and we come up with a bogus time to sleep waiting
on our sound to play, make sure we do at least our half second fudge, rather 
than spewing errors as we try to sleep for negative amounts of time.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@332 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-07 18:34:40 +00:00
Dave Hoover e46e126604 Cut this back; 16 seems to be adequate, and with how everything's structured
right now, we only cancel looping sounds after working with a full buffer's
worth of audio, so going too large is problematic.

It'd probably be a Good Thing to do something a little fancier for cancelling 
looping sounds more immediately, but for now, we'll stick with close to what's 
been the status quo for years.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@331 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-05 19:58:43 +00:00
Michael Bayne 9055539f69 We want to hear about repaints, though I need to test this more in various
other scenarios to really really be sure. Oh the twisty maze of AWT passages.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@330 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-11-03 00:45:12 +00:00
Dave Hoover bbbb5a2498 Only jump through extra hoops converting our sounds to pcm if we need to
(e.g. decoding oggs, but not playing wavs)
And then make looping work even if we're playing something that doesn't 
support resetting to marks in the stream (e.g. decoding oggs)


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@325 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-31 23:34:03 +00:00
Mike Thomas 5ab6e41f2f Rename parameters to reflect reality.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@324 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-31 23:21:59 +00:00
Dave Hoover b0a9cb847e Millis, not seconds.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@322 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-30 23:10:40 +00:00
Dave Hoover bf50fef84c When playing sounds, sleep for our estimated line reading time based on
how long we think the sound will really take to play, not how long the last
chunk of our buffer will take. With bumped up LINEBUF_SIZE, we'd sleep longer,
but would actually START sleeping much sooner, so we would truncate sounds.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@321 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-30 22:54:46 +00:00
Mike Thomas b9d255b032 We can't reliably make the decision as to how to load the image (FastImageIO/raw v normal) at the ResourceManager level - the path name by this point may be a file in the cache which will have lost its indicative extension. Instead, make the decision before we turn the resource path into an actual file name. This fixes YPP's current image loading issues.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@318 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-29 20:15:25 +00:00
Dave Hoover 618e688aab Nix unnecessary cast and unused compare function.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@314 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-26 22:55:49 +00:00
Michael Bayne cbe348db9a Fixed warning messages.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@313 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-26 20:17:30 +00:00
Michael Bayne ee10bb11ed Extract FileResourceBundle into a separate subclass and hide it away from the
rest of the world.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@312 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-26 20:08:38 +00:00
Michael Bayne 9103590534 Load our images directly. Yay.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@311 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-26 19:52:52 +00:00
Michael Bayne ecc173d6ad Revamped image loading such that the ResourceManager handles loading images
given a resource path so that it can be smart about loading from files versus
streams depending on what works based based on where the resources are coming
from. Also moved FastImageIO into com.threerings.resource to avoid a dependence
on com.threerings.media in resource.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@310 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-26 19:50:53 +00:00
Dave Hoover 0f98f64a9a If we want to use fancier SPI things (such as the stuff to trivially let us
play oggs), we need to jump through slightly more hoops with our audio. 
Also, bumping up LINEBUF_SIZE appears to clear up some general issues with 
linux playback being worse than other platforms, but definitely solves issues
where playing ogg turned into a bowl of rice krispies on all platforms.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@308 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-23 00:08:22 +00:00
Dave Hoover 1ebd28a450 Little bit of widening, type safety, and flagging overrides.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@306 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-17 23:34:32 +00:00
Michael Bayne 07830b303f Nixed a bunch of redundant casts.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@304 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-17 21:52:40 +00:00
Charlie Groves e0a22877e2 This seems like its been pretty happy on ice, so take off the training wheels
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@303 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-12 20:11:00 +00:00
Mike Thomas 8bc738c6d8 If a scene block resolution somehow gets abandoned, remove it from the list of blocks we're awaiting. I'd like to believe this is related to the mysterious YPP missing scene block bugs we've seen forever, but since I can't reproduce it - no idea if it actually is.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@302 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-10 18:15:15 +00:00
Charlie Groves 094e6b1730 Dirty SceneObjectTips as they're laid out. This was relying on tips being added and laid out before the initial paint.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@299 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-08 23:00:20 +00:00
Charlie Groves b4417cc330 Add a switch to disable dirtying the whole screen on an invalid component on the Mac again. I can't reproduce the problem now, and I might have just been seeing some sea monster badness before. Leave the current behavior on by default though.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@298 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-03 22:10:28 +00:00
Charlie Groves 1423c03890 Incidental genericity
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@297 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-10-03 21:26:25 +00:00
Charlie Groves ddb3c92fa1 Let's not make things that actually compose stuff hop about the screen by using their VolatileMirage offset in the place of their origin offset.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@296 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-09-26 22:18:27 +00:00
Charlie Groves c45878681f If we're creating a CompositedMultiFrameImage with only a single source image and it's a TileSetFrameImage, just use the Mirages in that TileSet rather than creating a whole new set of BufferedImages to composite them into. This halves the image memory used by anything that's just colorizing and transforming its images and doesn't really need composition.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@295 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-09-26 21:49:11 +00:00
Charlie Groves 8d5fc6c6ea Rolling back r292 with great sadness in my heart. The non-repainting doesn't happen very often, but sure enough it does and sure enough it's awful.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@294 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-09-03 22:45:29 +00:00
Charlie Groves 68bdd9402c Crank the CharacterManager cache up too so we're not compositing our sea monsters over and over again.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@293 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-09-01 00:45:40 +00:00
Charlie Groves 1e55b4ed7e Haven't been able to see any non-repainting without this on my mac, and this was causing the whole screen to be dirtied once a second when the countdown timer in a seamonster battle ticked.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@292 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-31 17:18:35 +00:00
Charlie Groves 65b8cdbc3a Factor in the percentage of the databuffer a BufferedMirage is using to
estimate its memory if its BufferedImage is a subimage of another
BufferedImage.

Include the amount of memory used by colorizations in ImageManager's cache
usage calculations.

Crank ImageManager's cache size up to 32 megs since a) it's actually seeing the
memory used by colorizations and b) the new seamonsters are pretty sizable.



git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@291 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-30 22:50:24 +00:00
Mike Thomas 37b5e58961 If a MultiTileSprite overlaps with another item, take their render priorities into account.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@290 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-30 18:50:16 +00:00
Charlie Groves 11322269c2 Redraw seems to work correctly on the Mac now, so only invalidate the shifted region like on other platforms.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@288 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-28 17:07:39 +00:00
Mike Thomas 95c36c22a2 Explanatory comment.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@287 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-22 22:26:36 +00:00
Mike Thomas b560a045cd Add ability for a sprite to specify that it resides in a rectangular region of tiles rather than assuming all sprites only occupy one tile.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@286 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-22 22:24:54 +00:00
Mike Thomas 9d73fe0587 This needs to respect sprite offset.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@285 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-22 22:22:59 +00:00
Charlie Groves e003d97535 Break the code for completing a fade into a method so subclasses can override it and do what they will when it finishes.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@284 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-10 22:00:50 +00:00
Michael Bayne 069fe85c70 A whole lot of widening, refactoring, thinking, rethinking and fiddling around
for what ultimately boils down adding this method to BundledComponentRepository:

    @Override // from IMImageProvider
    public Mirage getTileImage (String path, Rectangle bounds, Colorization[] zations)
    {
        // we don't need our images prepared for screen rendering
        BufferedImage src = _imgr.getImage(getImageKey(path), zations);
        if (bounds != null) {
            src = src.getSubimage(bounds.x, bounds.y, bounds.width, bounds.height);
        }
        return new BufferedMirage(src);
    }

So much fun to revisit code I wrote six years ago.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@283 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-03 22:04:04 +00:00
Michael Bayne bbd5dd284e Added version of getTile() that takes a rectangle into which to write the results.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@282 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-03 21:10:48 +00:00
Charlie Groves 205d57a7fe Allow TileSetRuleSets to specify a custom tileset tag name, and use that to allow UniformTileSets as <uniformTileset> in addition to the existing SwissArmyTileSets as <tileset> in the bundle tasks.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@281 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-08-02 23:18:16 +00:00
Mike Thomas 1f435d582d If our build process fails to properly trim a tile set, it's kinda a big deal, so throw a BuildException so ant hears about it and stops.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@280 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-07-30 20:59:32 +00:00
Dave Hoover 81dcd90c1a Simplify and combine fading out for both moving and stationary sprites.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@276 ed5b42cb-e716-0410-a449-f6a68f950b19
2007-07-18 18:47:37 +00:00